PageRenderTime 59ms CodeModel.GetById 52ms app.highlight 5ms RepoModel.GetById 1ms app.codeStats 0ms

/testability-explorer/src/main/java/com/google/test/metric/method/op/stack/GetField.java

http://testability-explorer.googlecode.com/
Java | 49 lines | 25 code | 9 blank | 15 comment | 0 complexity | 9a87db7cd8694975679b99ba0c2ae8bb MD5 | raw file
 1/*
 2 * Copyright 2007 Google Inc.
 3 *
 4 * Licensed under the Apache License, Version 2.0 (the "License"); you may not
 5 * use this file except in compliance with the License. You may obtain a copy of
 6 * the License at
 7 *
 8 * http://www.apache.org/licenses/LICENSE-2.0
 9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
12 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
13 * License for the specific language governing permissions and limitations under
14 * the License.
15 */
16package com.google.test.metric.method.op.stack;
17
18import java.util.List;
19
20import com.google.test.metric.FieldInfo;
21import com.google.test.metric.LocalField;
22import com.google.test.metric.Variable;
23
24public class GetField extends StackOperation {
25
26  private final FieldInfo fieldInfo;
27
28  public GetField(int lineNumber, FieldInfo fieldInfo) {
29    super(lineNumber);
30    this.fieldInfo = fieldInfo;
31  }
32
33  @Override
34  public String toString() {
35    return "get " + (fieldInfo.isGlobal() ? "static " : "") + fieldInfo;
36  }
37
38  @Override
39  public int getOperatorCount() {
40    return fieldInfo.isGlobal() ? 0 : 1;
41  }
42
43  @Override
44  public List<Variable> apply(List<Variable> input) {
45    Variable instance = fieldInfo.isGlobal() ? null : input.get(0);
46    return list(new LocalField(instance, fieldInfo));
47  }
48
49}