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

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

http://testability-explorer.googlecode.com/
Java | 53 lines | 29 code | 9 blank | 15 comment | 1 complexity | 6f0a63fc024d94eb92f8a803579c0e9c 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.ArrayList;
19import java.util.List;
20
21import com.google.test.metric.Variable;
22
23public class Duplicate2 extends StackOperation {
24
25  private final int offset;
26
27  public Duplicate2(int lineNumber, int offset) {
28    super(lineNumber);
29    this.offset = offset;
30  }
31
32  @Override
33  public int getOperatorCount() {
34    return 2 + offset;
35  }
36
37  @Override
38  public List<Variable> apply(List<Variable> input) {
39    List<Variable> list = new ArrayList<Variable>();
40    list.add(input.get(input.size() - 2));
41    list.add(input.get(input.size() - 1));
42    for (Variable in : input) {
43      list.add(in);
44    }
45    return list;
46  }
47
48  @Override
49  public String toString() {
50    return "duplicate2" + (offset > 0 ? "_X" + offset : "");
51  }
52
53}