int mod = m.getModifiers(); if (m.getDeclaringClass() != Object.class && !Modifier.isFinal(mod)) if (Modifier.isPublic(mod)) { CtMethod body;
public <T> Class<T> createStructClz( Class<T> clazz ) throws Exception { if ( Modifier.isFinal(clazz.getModifiers()) || Modifier.isAbstract(clazz.getModifiers()) ) { throw new RuntimeException("Cannot add final classes to structs "+clazz.getName());
int mod = m.getModifiers(); if (m.getDeclaringClass() != Object.class && !Modifier.isFinal(mod)) if (Modifier.isPublic(mod)) { CtMethod body;
public <T> Class<T> createStructClz( Class<T> clazz ) throws Exception { if ( Modifier.isFinal(clazz.getModifiers()) || Modifier.isAbstract(clazz.getModifiers()) ) { throw new RuntimeException("Cannot add final classes to structs "+clazz.getName());
init.check(f.getSignature()); int mod = f.getModifiers(); if (Modifier.isStatic(mod) && Modifier.isFinal(mod)) try { ConstPool cp = getClassFile2().getConstPool();
init.check(f.getSignature()); int mod = f.getModifiers(); if (Modifier.isStatic(mod) && Modifier.isFinal(mod)) try { ConstPool cp = getClassFile2().getConstPool();
private static boolean checkImmutable(Class<?> type) { if (_ignoredClasses.containsKey(type)) return true; if (Modifier.isFinal(type.getModifiers())) { _ignoredClasses.put(type, Boolean.TRUE); return true; } return false; }
private boolean isFieldUsable(final Field field) { final int modifiers = field.getModifiers(); return !Modifier.isFinal(modifiers) && !Modifier.isStatic(modifiers) && !Modifier.isTransient(modifiers) && !field.isSynthetic(); }
private boolean shouldCreateChild(final CtClass superClass) throws Exception{ //only classes containing Tests should be processed boolean isTestClass = false; for(CtMethod method : superClass.getMethods()){ if(method.getAnnotation(Test.class) != null){ isTestClass = true; break; } } if(!isTestClass) return false; if (Modifier.isFinal(superClass.getModifiers()) || Modifier.isInterface(superClass.getModifiers())) throw new Exception(superClass.getName() + " should not be final in order to be able to extend it for test."); boolean allConstructorsPrivate = Arrays.stream(superClass.getConstructors()) .map(CtConstructor::getModifiers) .map(Modifier::isPrivate) .reduce((a, b) -> a && b).orElse(true); if (allConstructorsPrivate) throw new Exception(superClass.getName() + " should contain at least one non private constructor"); return true; }
static boolean isProperty(CtField ctField) { if (ctField.getName().equals(ctField.getName().toUpperCase()) || ctField.getName().substring(0, 1).equals(ctField.getName().substring(0, 1).toUpperCase())) { return false; } return Modifier.isPublic(ctField.getModifiers()) && !Modifier.isFinal(ctField.getModifiers()) && !Modifier.isStatic(ctField.getModifiers()); }
static boolean isProperty(CtField ctField) { if (ctField.getName().equals(ctField.getName().toUpperCase()) || ctField.getName().substring(0, 1).equals(ctField.getName().substring(0, 1).toUpperCase())) { return false; } return Modifier.isPublic(ctField.getModifiers()) && !Modifier.isFinal(ctField.getModifiers()) && !Modifier.isStatic(ctField.getModifiers()); }
private static boolean isConstant(CtField ctField) { return Modifier.isStatic(ctField.getModifiers()) && Modifier.isFinal(ctField.getModifiers()); }
private void parseFlags(CtClass classFile) { this.isInterface = classFile.isInterface(); this.isAbstract = Modifier.isAbstract(classFile.getModifiers()); this.isFinal = Modifier.isFinal(classFile.getModifiers()); }
if ( Modifier.isFinal( ctField.getModifiers()) ) { if ( !isCtFieldACollection(ctField) ) { continue;
public CtClass transform(final CtClass clazz) { if (clazz.isInterface()) { return clazz; } if (getStrategy() != INST_REDEFINE) { for (CtField f : clazz.getDeclaredFields()) { final int modifiers = f.getModifiers(); if (Modifier.isFinal(modifiers) && Modifier.isStatic(modifiers)) { f.setModifiers(modifiers ^ Modifier.FINAL); } } } return clazz; }
private void buildFields(Element element, CtClass klass) throws NotFoundException { CtField[] fields = klass.getDeclaredFields(); for (int i = 0; i < fields.length; i++) { if (!filter.isAPIMember(fields[i])) { continue; } Element fieldElement = document.createElement("field"); addAttribute(fieldElement, "name", fields[i].getName()); addAttribute(fieldElement, "type", fields[i].getType().getName()); addModifiers(fieldElement, fields[i].getModifiers()); int mod = fields[i].getModifiers(); if ((Modifier.isFinal(mod)) && (Modifier.isStatic(mod)) && APIFilter.isExportableConstantType(fields[i].getType())) { Object constValue = fields[i].getConstantValue(); if (constValue != null) { addAttribute(fieldElement, "constant-value", constValue.toString()); } } element.appendChild(fieldElement); } }
private static void fixMember(CtMember member, boolean useReflection) { //Make member public if (useReflection) { member.setModifiers(Modifier.setPublic(member.getModifiers())); AnnotationUtil.annotateReflectionAccessor(member, null, null, null); } //Create a RW alias for final fields if (member instanceof CtField && Modifier.isFinal(member.getModifiers())) { try { CtField rwField = new CtField((CtField) member, member.getDeclaringClass()); rwField.setName(member.getName() + "_rw"); rwField.setModifiers(Modifier.setPublic(rwField.getModifiers()) & ~Modifier.FINAL); AnnotationUtil.annotateReflectionAccessor(rwField, member.getName(), null, null); member.getDeclaringClass().addField(rwField); } catch (CannotCompileException e) { System.err.println("Cannot add field '" + member.getName() + "_rw' to " + member.getDeclaringClass().getName()); } } }