/**
* Copyright (c) 2012-2016 André Bargull
* Alle Rechte vorbehalten / All Rights Reserved. Use is subject to license terms.
*
* <https://github.com/anba/es6draft>
*/
package com.github.anba.es6draft.compiler.assembler;
/**
* Field descriptor object.
*/
public final class FieldName {
public enum Allocation {
Instance, Static
}
/**
* The field allocation type.
*/
public final FieldName.Allocation allocation;
/**
* Type descriptor of the declaring class.
*/
public final Type owner;
/**
* The field name.
*/
public final String name;
/**
* Type descriptor of the field.
*/
public final Type descriptor;
private FieldName(FieldName.Allocation allocation, Type owner, String name, Type descriptor) {
this.allocation = allocation;
this.owner = owner;
this.name = name;
this.descriptor = descriptor;
}
/**
* Creates a new field descriptor.
*
* @param owner
* the owner class
* @param name
* the field name
* @param descriptor
* the field type descriptor
* @return the field descriptor
*/
public static FieldName findStatic(Type owner, String name, Type descriptor) {
return new FieldName(Allocation.Static, owner, name, descriptor);
}
/**
* Creates a new field descriptor.
*
* @param owner
* the owner class
* @param name
* the field name
* @param descriptor
* the field type descriptor
* @return the field descriptor
*/
public static FieldName findField(Type owner, String name, Type descriptor) {
return new FieldName(Allocation.Instance, owner, name, descriptor);
}
}