com.android.dx.rop.cst.CstFieldRef Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of builder Show documentation
Show all versions of builder Show documentation
Library to build Android applications.
/*
* Copyright (C) 2007 The Android Open Source Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.android.dx.rop.cst;
import com.android.dx.rop.type.Type;
/**
* Constants of type {@code CONSTANT_Fieldref_info}.
*/
public final class CstFieldRef extends CstMemberRef {
/**
* Returns an instance of this class that represents the static
* field which should hold the class corresponding to a given
* primitive type. For example, if given {@link Type#INT}, this
* method returns an instance corresponding to the field
* {@code java.lang.Integer.TYPE}.
*
* @param primitiveType {@code non-null;} the primitive type
* @return {@code non-null;} the corresponding static field
*/
public static CstFieldRef forPrimitiveType(Type primitiveType) {
return new CstFieldRef(CstType.forBoxedPrimitiveType(primitiveType),
CstNat.PRIMITIVE_TYPE_NAT);
}
/**
* Constructs an instance.
*
* @param definingClass {@code non-null;} the type of the defining class
* @param nat {@code non-null;} the name-and-type
*/
public CstFieldRef(CstType definingClass, CstNat nat) {
super(definingClass, nat);
}
/** {@inheritDoc} */
@Override
public String typeName() {
return "field";
}
/**
* Returns the type of this field.
*
* @return {@code non-null;} the field's type
*/
public Type getType() {
return getNat().getFieldType();
}
/** {@inheritDoc} */
@Override
protected int compareTo0(Constant other) {
int cmp = super.compareTo0(other);
if (cmp != 0) {
return cmp;
}
CstFieldRef otherField = (CstFieldRef) other;
CstString thisDescriptor = getNat().getDescriptor();
CstString otherDescriptor = otherField.getNat().getDescriptor();
return thisDescriptor.compareTo(otherDescriptor);
}
}
© 2015 - 2024 Weber Informatics LLC | Privacy Policy