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

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

http://testability-explorer.googlecode.com/
Java | 56 lines | 32 code | 9 blank | 15 comment | 1 complexity | 81841bf99c7619b21ed66927c9cff2fe 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.JavaType;
21import com.google.test.metric.Type;
22import com.google.test.metric.Variable;
23import com.google.test.metric.method.op.turing.ArrayAssignment;
24import com.google.test.metric.method.op.turing.Operation;
25
26public class ArrayStore extends StackOperation {
27
28  private final Type type;
29
30  public ArrayStore(int lineNumber, Type type) {
31    super(lineNumber);
32    this.type = type;
33  }
34
35  @Override
36  public int getOperatorCount() {
37    return 2 + (JavaType.isDoubleSlot(type) ? 2 : 1);
38  }
39
40  @Override
41  public Operation toOperation(List<Variable> input) {
42    if (!input.get(0).getType().isObject()) {
43      throw new IllegalStateException();
44    }
45    Variable array = input.get(0);
46    Variable index = input.get(1);
47    Variable value = input.get(2);
48    return new ArrayAssignment(lineNumber, array, index, value);
49  }
50
51  @Override
52  public String toString() {
53    return "arraystore";
54  }
55
56}