1aebb205aebd103044de0b62fb9e971631f396057Ben Gruver/*
2aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * Copyright 2016, Google Inc.
3aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * All rights reserved.
4aebb205aebd103044de0b62fb9e971631f396057Ben Gruver *
5aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * Redistribution and use in source and binary forms, with or without
6aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * modification, are permitted provided that the following conditions are
7aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * met:
8aebb205aebd103044de0b62fb9e971631f396057Ben Gruver *
9aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * Redistributions of source code must retain the above copyright
10aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * notice, this list of conditions and the following disclaimer.
11aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * Redistributions in binary form must reproduce the above
12aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * copyright notice, this list of conditions and the following disclaimer
13aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * in the documentation and/or other materials provided with the
14aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * distribution.
15aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * Neither the name of Google Inc. nor the names of its
16aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * contributors may be used to endorse or promote products derived from
17aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * this software without specific prior written permission.
18aebb205aebd103044de0b62fb9e971631f396057Ben Gruver *
19aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
20aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
21aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
22aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
23aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
24aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
25aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
26aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
27aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
28aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
29aebb205aebd103044de0b62fb9e971631f396057Ben Gruver * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
30aebb205aebd103044de0b62fb9e971631f396057Ben Gruver */
31aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
32aebb205aebd103044de0b62fb9e971631f396057Ben Gruverpackage org.jf.smalidea.debugging.value;
33aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
34aebb205aebd103044de0b62fb9e971631f396057Ben Gruverimport com.intellij.openapi.project.Project;
35aebb205aebd103044de0b62fb9e971631f396057Ben Gruverimport com.sun.jdi.ThreadGroupReference;
36aebb205aebd103044de0b62fb9e971631f396057Ben Gruverimport com.sun.jdi.ThreadReference;
37aebb205aebd103044de0b62fb9e971631f396057Ben Gruverimport org.jf.smalidea.psi.impl.SmaliMethod;
38aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
39aebb205aebd103044de0b62fb9e971631f396057Ben Gruverimport java.util.List;
40aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
41aebb205aebd103044de0b62fb9e971631f396057Ben Gruverpublic class LazyThreadGroupReference extends LazyObjectReference<ThreadGroupReference>
42aebb205aebd103044de0b62fb9e971631f396057Ben Gruver        implements ThreadGroupReference {
43aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
44aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    public LazyThreadGroupReference(SmaliMethod method, Project project, int registerNumber, String type) {
45aebb205aebd103044de0b62fb9e971631f396057Ben Gruver        super(method, project, registerNumber, type);
46aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    }
47aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
48aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    @Override public String name() {
49aebb205aebd103044de0b62fb9e971631f396057Ben Gruver        return getValue().name();
50aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    }
51aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
52aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    @Override public ThreadGroupReference parent() {
53aebb205aebd103044de0b62fb9e971631f396057Ben Gruver        return getValue().parent();
54aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    }
55aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
56aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    @Override public void resume() {
57aebb205aebd103044de0b62fb9e971631f396057Ben Gruver        getValue().resume();
58aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    }
59aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
60aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    @Override public void suspend() {
61aebb205aebd103044de0b62fb9e971631f396057Ben Gruver        getValue().suspend();
62aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    }
63aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
64aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    @Override public List<ThreadGroupReference> threadGroups() {
65aebb205aebd103044de0b62fb9e971631f396057Ben Gruver        return getValue().threadGroups();
66aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    }
67aebb205aebd103044de0b62fb9e971631f396057Ben Gruver
68aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    @Override public List<ThreadReference> threads() {
69aebb205aebd103044de0b62fb9e971631f396057Ben Gruver        return getValue().threads();
70aebb205aebd103044de0b62fb9e971631f396057Ben Gruver    }
71aebb205aebd103044de0b62fb9e971631f396057Ben Gruver}
72