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/Duplicate.java

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