本文整理汇总了Java中org.apache.bcel.classfile.Field.getName方法的典型用法代码示例。如果您正苦于以下问题:Java Field.getName方法的具体用法?Java Field.getName怎么用?Java Field.getName使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类org.apache.bcel.classfile.Field
的用法示例。
在下文中一共展示了Field.getName方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: field2str
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
protected String field2str(final Field field) {
String modifier = "";
if (field.isPrivate()) {
modifier = "private ";
} else if (field.isProtected()) {
modifier = "protected ";
} else if (field.isPublic()) {
modifier = "public ";
}
if (field.isStatic()) {
modifier += "static ";
}
if (field.isFinal()) {
modifier += "final ";
}
modifier += field.getType().toString();
modifier += ' ' + field.getName();
return modifier;
}
示例2: writeField
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
/**
* Print field of class.
*
* @param field field to print
* @exception java.io.IOException
*/
private void writeField( Field field ) throws IOException {
String type = Utility.signatureToString(field.getSignature());
String name = field.getName();
String access = Utility.accessToString(field.getAccessFlags());
Attribute[] attributes;
access = Utility.replace(access, " ", " ");
file.print("<TR><TD><FONT COLOR=\"#FF0000\">" + access + "</FONT></TD>\n<TD>"
+ Class2HTML.referenceType(type) + "</TD><TD><A NAME=\"field" + name + "\">" + name
+ "</A></TD>");
attributes = field.getAttributes();
// Write them to the Attributes.html file with anchor "<name>[<i>]"
for (int i = 0; i < attributes.length; i++) {
attribute_html.writeAttribute(attributes[i], name + "@" + i);
}
for (int i = 0; i < attributes.length; i++) {
if (attributes[i].getTag() == ATTR_CONSTANT_VALUE) { // Default value
String str = ((ConstantValue) attributes[i]).toString();
// Reference attribute in _attributes.html
file.print("<TD>= <A HREF=\"" + class_name + "_attributes.html#" + name + "@" + i
+ "\" TARGET=\"Attributes\">" + str + "</TD>\n");
break;
}
}
file.println("</TR>");
}
示例3: getClassField
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
private ClassField getClassField(Field field) {
ClassField classField = new ClassField(getType(field), field.getName());
AnnotationEntry[] annotationEntries = field.getAnnotationEntries();
if(annotationEntries.length > 0) {
classField.setAnnotationMap(getAnnotationMap(annotationEntries));
}
return classField;
}
示例4: Attribute
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
public Attribute(JavaClass javaClass, Field field, boolean isParseAnnotation) {
this.javaClass = javaClass;
this.javaClassId = javaClass.getId();
this.access_flags = field.getAccessFlags();
this.info = field.toString();
this.name = field.getName();
this.signature = SignatureUtil.getSignature(field);
this.types = new ArrayList<String>();
for (String type : ParseUtil.signatureToTypes(this.signature)) {
this.types.add(type);
}
if (field.isStatic() && field.getConstantValue() != null) {
staticValue = field.getConstantValue().toString();
}
this.annotationRefs = new AnnotationRefs();
// 处理Annotation
if (isParseAnnotation) {
for (AnnotationEntry annotationEntry : field.getAnnotationEntries()) {
if (annotationEntry.getAnnotationType().equals(AnnotationParse.Autowired)) {
this.annotationRefs.setAutowired(AnnotationParse.parseAutowired(annotationEntry));
} else if (annotationEntry.getAnnotationType().equals(AnnotationParse.Qualifier)) {
this.annotationRefs.setQualifier(AnnotationParse.parseQualifier(annotationEntry));
}
}
}
}
示例5: badFieldName
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
/**
* @param obj
* @return
*/
private boolean badFieldName(Field obj) {
String fieldName = obj.getName();
return !obj.isFinal() && Character.isLetter(fieldName.charAt(0)) && !Character.isLowerCase(fieldName.charAt(0))
&& fieldName.indexOf("_") == -1 && Character.isLetter(fieldName.charAt(1))
&& Character.isLowerCase(fieldName.charAt(1));
}
示例6: FieldGen
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
/**
* Instantiate from existing field.
*
* @param field Field object
* @param cp constant pool (must contain the same entries as the field's constant pool)
*/
public FieldGen(Field field, ConstantPoolGen cp) {
this(field.getAccessFlags(), Type.getType(field.getSignature()), field.getName(), cp);
Attribute[] attrs = field.getAttributes();
for (int i = 0; i < attrs.length; i++) {
if (attrs[i] instanceof ConstantValue) {
setValue(((ConstantValue) attrs[i]).getConstantValueIndex());
} else {
addAttribute(attrs[i]);
}
}
}
示例7: getInputs
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
/**
* Returns all inputs defined by the FunctionBlock. The Map returned uses the name of the input as the key and the
* class of the input as the value.
*
* @return the inputs defined by the FunctionBlock. Maps from input name to input class
* @throws ClassNotFoundException
* if any of the classes used by the inputs could not be loaded
*/
public Map<String, JavaClass> getInputs() throws ClassNotFoundException {
final Map<String, JavaClass> inputs = new HashMap<String, JavaClass>();
for (final Field field : new FieldIterable(blockClass)) {
if (isInputField(field)) {
final String name = field.getName();
if (!inputs.containsKey(name)) {
inputs.put(field.getName(), getInputType(field));
}
}
}
return inputs;
}
示例8: getOutputs
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
/**
* Returns all inputs defined by the FunctionBlock. The Map returned uses the name of the input as the key and the
* class of the input as the value.
*
* @return the inputs defined by the FunctionBlock. Maps from input name to input class
* @throws ClassNotFoundException
* if any of the classes used by the inputs could not be loaded
*/
public Map<String, JavaClass> getOutputs() throws ClassNotFoundException {
final Map<String, JavaClass> outputs = new HashMap<String, JavaClass>();
for (final Field field : new FieldIterable(blockClass)) {
if (isOutputField(field)) {
final String name = field.getName();
if (!outputs.containsKey(name)) {
outputs.put(field.getName(), getOutputType(field));
}
}
}
return outputs;
}
示例9: makeFieldName
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
protected String makeFieldName(final String className, final Field field) {
return className + '.' + field.getName() + '.' + field.getSignature();
}
示例10: visit
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
@Override
public void visit(JavaClass obj) {
classFields.clear();
Field[] fields = obj.getFields();
String fieldName;
for (Field field : fields)
if (!field.isStatic() && !field.isPrivate()) {
fieldName = field.getName();
classFields.put(fieldName, field);
}
// Walk up the super class chain, looking for name collisions
XClass c = getXClass();
while (true) {
ClassDescriptor s = c.getSuperclassDescriptor();
if (s == null || s.getClassName().equals("java/lang/Object"))
break;
try {
c = Global.getAnalysisCache().getClassAnalysis(XClass.class, s);
} catch (CheckedAnalysisException e) {
break;
}
XClass superClass = c;
for (XField fld : c.getXFields()) {
if (!fld.isStatic() && (fld.isPublic() || fld.isProtected())) {
fieldName = fld.getName();
if (fieldName.length() == 1)
continue;
if (fieldName.equals("serialVersionUID"))
continue;
String superClassName = s.getClassName();
if (superClassName.startsWith("java/io")
&& (superClassName.endsWith("InputStream") && fieldName.equals("in") || superClassName
.endsWith("OutputStream") && fieldName.equals("out")))
continue;
if (classFields.containsKey(fieldName)) {
Field maskingField = classFields.get(fieldName);
String mClassName = getDottedClassName();
FieldAnnotation fa = new FieldAnnotation(mClassName, maskingField.getName(), maskingField.getSignature(),
maskingField.isStatic());
int priority = NORMAL_PRIORITY;
if (maskingField.isStatic() || maskingField.isFinal())
priority++;
else if (fld.getSignature().charAt(0) == 'L' && !fld.getSignature().startsWith("Ljava/lang/")
|| fld.getSignature().charAt(0) == '[')
priority--;
if (!fld.getSignature().equals(maskingField.getSignature()))
priority += 2;
else if (fld.getAccessFlags() != maskingField.getAccessFlags())
priority++;
if (fld.isSynthetic() || fld.getName().indexOf('$') >= 0)
priority++;
FieldAnnotation maskedFieldAnnotation = FieldAnnotation.fromFieldDescriptor(fld.getFieldDescriptor());
BugInstance bug = new BugInstance(this, "MF_CLASS_MASKS_FIELD", priority).addClass(this).addField(fa)
.describe("FIELD_MASKING").addField(maskedFieldAnnotation).describe("FIELD_MASKED");
rememberedBugs.add(new RememberedBug(bug, fa, maskedFieldAnnotation));
}
}
}
}
super.visit(obj);
}
示例11: visitField
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
public void visitField(Field obj){
if (jc.isClass()){
int maxone=0;
if (obj.isPrivate()) {
maxone++;
}
if (obj.isProtected()) {
maxone++;
}
if (obj.isPublic()) {
maxone++;
}
if (maxone > 1){
throw new ClassConstraintException("Field '"+tostring(obj)+"' must only have at most one of its ACC_PRIVATE, ACC_PROTECTED, ACC_PUBLIC modifiers set.");
}
if (obj.isFinal() && obj.isVolatile()){
throw new ClassConstraintException("Field '"+tostring(obj)+"' must only have at most one of its ACC_FINAL, ACC_VOLATILE modifiers set.");
}
}
else{ // isInterface!
if (!obj.isPublic()){
throw new ClassConstraintException("Interface field '"+tostring(obj)+"' must have the ACC_PUBLIC modifier set but hasn't!");
}
if (!obj.isStatic()){
throw new ClassConstraintException("Interface field '"+tostring(obj)+"' must have the ACC_STATIC modifier set but hasn't!");
}
if (!obj.isFinal()){
throw new ClassConstraintException("Interface field '"+tostring(obj)+"' must have the ACC_FINAL modifier set but hasn't!");
}
}
if ((obj.getAccessFlags() & ~(ACC_PUBLIC|ACC_PRIVATE|ACC_PROTECTED|ACC_STATIC|ACC_FINAL|ACC_VOLATILE|ACC_TRANSIENT)) > 0){
addMessage("Field '"+tostring(obj)+"' has access flag(s) other than ACC_PUBLIC, ACC_PRIVATE, ACC_PROTECTED, ACC_STATIC, ACC_FINAL, ACC_VOLATILE, ACC_TRANSIENT set (ignored).");
}
checkIndex(obj, obj.getNameIndex(), CONST_Utf8);
String name = obj.getName();
if (! validFieldName(name)){
throw new ClassConstraintException("Field '"+tostring(obj)+"' has illegal name '"+obj.getName()+"'.");
}
// A descriptor is often named signature in BCEL
checkIndex(obj, obj.getSignatureIndex(), CONST_Utf8);
String sig = ((ConstantUtf8) (cp.getConstant(obj.getSignatureIndex()))).getBytes(); // Field or Method signature(=descriptor)
try{
Type.getType(sig); /* Don't need the return value */
}
catch (ClassFormatException cfe){
throw new ClassConstraintException("Illegal descriptor (==signature) '"+sig+"' used by '"+tostring(obj)+"'.");
}
String nameanddesc = (name+sig);
if (field_names_and_desc.contains(nameanddesc)){
throw new ClassConstraintException("No two fields (like '"+tostring(obj)+"') are allowed have same names and descriptors!");
}
if (field_names.contains(name)){
addMessage("More than one field of name '"+name+"' detected (but with different type descriptors). This is very unusual.");
}
field_names_and_desc.add(nameanddesc);
field_names.add(name);
Attribute[] atts = obj.getAttributes();
for (int i=0; i<atts.length; i++){
if ((! (atts[i] instanceof ConstantValue)) &&
(! (atts[i] instanceof Synthetic)) &&
(! (atts[i] instanceof Deprecated))){
addMessage("Attribute '"+tostring(atts[i])+"' as an attribute of Field '"+tostring(obj)+"' is unknown and will therefore be ignored.");
}
if (! (atts[i] instanceof ConstantValue)){
addMessage("Attribute '"+tostring(atts[i])+"' as an attribute of Field '"+tostring(obj)+"' is not a ConstantValue and is therefore only of use for debuggers and such.");
}
}
}
示例12: fromBCELField
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
/**
* Factory method. Construct from class name and BCEL Field object.
*
* @param className the name of the class which defines the field
* @param field the BCEL Field object
*/
public static FieldAnnotation fromBCELField(String className, Field field) {
return new FieldAnnotation(className, field.getName(), field.getSignature(), field.isStatic());
}
示例13: parseField
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
/**
* @param obj
* the field to parse
* @return a descriptor for the field
*/
protected FieldDescriptor parseField(Field obj) {
return new FieldDescriptor(slashedClassName, obj.getName(), obj.getSignature(), obj.isStatic());
}
示例14: fromBCELField
import org.apache.bcel.classfile.Field; //导入方法依赖的package包/类
/**
* Factory method. Construct from class name and BCEL Field object.
*
* @param className
* the name of the class which defines the field
* @param field
* the BCEL Field object
* @return the FieldAnnotation
*/
public static FieldAnnotation fromBCELField(@DottedClassName String className, Field field) {
return new FieldAnnotation(className, field.getName(), field.getSignature(), field.isStatic());
}