1 /*
   2  * Copyright (c) 2017, 2019, Oracle and/or its affiliates. All rights reserved.
   3  */
   4 /*
   5  * Licensed to the Apache Software Foundation (ASF) under one or more
   6  * contributor license agreements.  See the NOTICE file distributed with
   7  * this work for additional information regarding copyright ownership.
   8  * The ASF licenses this file to You under the Apache License, Version 2.0
   9  * (the "License"); you may not use this file except in compliance with
  10  * the License.  You may obtain a copy of the License at
  11  *
  12  *      http://www.apache.org/licenses/LICENSE-2.0
  13  *
  14  * Unless required by applicable law or agreed to in writing, software
  15  * distributed under the License is distributed on an "AS IS" BASIS,
  16  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  17  * See the License for the specific language governing permissions and
  18  * limitations under the License.
  19  */
  20 package com.sun.org.apache.bcel.internal.generic;
  21 
  22 import com.sun.org.apache.bcel.internal.Const;
  23 
  24 /**
  25  * ASTORE - Store reference into local variable
  26  * <PRE>Stack ..., objectref -&gt; ... </PRE>
  27  *
  28  * @version $Id$
  29  * @LastModified: Jun 2019
  30  */
  31 public class ASTORE extends StoreInstruction {
  32 
  33     /**
  34      * Empty constructor needed for Instruction.readInstruction.
  35      * Not to be used otherwise.
  36      */
  37     ASTORE() {
  38         super(Const.ASTORE, Const.ASTORE_0);
  39     }
  40 
  41 
  42     /** Store reference into local variable
  43      * @param n index of local variable
  44      */
  45     public ASTORE(final int n) {
  46         super(Const.ASTORE, Const.ASTORE_0, n);
  47     }
  48 
  49 
  50     /**
  51      * Call corresponding visitor method(s). The order is:
  52      * Call visitor methods of implemented interfaces first, then
  53      * call methods according to the class hierarchy in descending order,
  54      * i.e., the most specific visitXXX() call comes last.
  55      *
  56      * @param v Visitor object
  57      */
  58     @Override
  59     public void accept( final Visitor v ) {
  60         super.accept(v);
  61         v.visitASTORE(this);
  62     }
  63 }