List of usage examples for java.lang Class isMemberClass
public boolean isMemberClass()
From source file:com.discovery.darchrow.lang.ClassUtil.java
/** * class info map for LOGGER./*from w ww .j a va2 s.co m*/ * * @param klass * the clz * @return the map for log */ public static Map<String, Object> getClassInfoMapForLog(Class<?> klass) { if (Validator.isNullOrEmpty(klass)) { return null; } Map<String, Object> map = new LinkedHashMap<String, Object>(); map.put("clz.getCanonicalName()", klass.getCanonicalName());//"com.feilong.core.date.DatePattern" map.put("clz.getName()", klass.getName());//"com.feilong.core.date.DatePattern" map.put("clz.getSimpleName()", klass.getSimpleName());//"DatePattern" map.put("clz.getComponentType()", klass.getComponentType()); // ?? voidboolean?byte?char?short?int?long?float double? map.put("clz.isPrimitive()", klass.isPrimitive()); // ??, map.put("clz.isLocalClass()", klass.isLocalClass()); // ????,?????? map.put("clz.isMemberClass()", klass.isMemberClass()); //isSynthetic()?Class????java??false?trueJVM???java?????? map.put("clz.isSynthetic()", klass.isSynthetic()); map.put("clz.isArray()", klass.isArray()); map.put("clz.isAnnotation()", klass.isAnnotation()); //??true map.put("clz.isAnonymousClass()", klass.isAnonymousClass()); map.put("clz.isEnum()", klass.isEnum()); return map; }
From source file:eu.squadd.reflections.mapper.ServiceModelTranslator.java
private static boolean assignPropertyValue(PropertyDescriptor sourceProp, Object sourceValue, PropertyDescriptor destProp, Object destInstance) { if (sourceValue == null) { System.out.println("Null value found, assignment skipped"); return true; }/* ww w . j a v a 2 s . c o m*/ boolean result = false; Class<?> sourceType = sourceProp.getPropertyType(); Method getter = sourceProp.getReadMethod(); Class<?> destType = destProp.getPropertyType(); Method setter = destProp.getWriteMethod(); try { if (destType.isInterface() || destType.isArray() || destType.isEnum()) { if (Collection.class.isAssignableFrom(sourceType) && Collection.class.isAssignableFrom(destType)) assignCollectionValue(getter, sourceValue, destType, setter, destInstance); else if (Map.class.isAssignableFrom(sourceType) && Map.class.isAssignableFrom(destType)) assignMapValue(getter, sourceValue, setter, destInstance); else assignMixedTypesValue(sourceType, getter, sourceValue, destType, setter, destInstance); } else if (destType.isInstance(sourceValue) || destType.isPrimitive()) setter.invoke(destInstance, sourceValue); else if (destType.isMemberClass()) setter.invoke(destInstance, sourceValue); else if (destType.isAssignableFrom(sourceType)) setter.invoke(destInstance, destType.cast(sourceValue)); else { //if (ClassUtils.isInnerClass(destType)) { Object member = transposeModel(sourceType, destType, sourceValue); member = destType.cast(member); setter.invoke(destInstance, member); } result = true; } catch (IllegalArgumentException ex) { System.out.println("Looks like type mismatch, source type: " + sourceType + ", dest type: " + destType); Logger.getLogger(ServiceModelTranslator.class.getName()).log(Level.SEVERE, null, ex); } catch (InvocationTargetException | IllegalAccessException ex) { Logger.getLogger(ServiceModelTranslator.class.getName()).log(Level.SEVERE, null, ex); } return result; }
From source file:com.sunchenbin.store.feilong.core.lang.ClassUtil.java
/** * class info map for LOGGER.//from w w w. j a v a 2 s.co m * * @param klass * the clz * @return the map for log */ public static Map<String, Object> getClassInfoMapForLog(Class<?> klass) { if (Validator.isNullOrEmpty(klass)) { return Collections.emptyMap(); } Map<String, Object> map = new LinkedHashMap<String, Object>(); map.put("clz.getCanonicalName()", klass.getCanonicalName());//"com.sunchenbin.store.feilong.core.date.DatePattern" map.put("clz.getName()", klass.getName());//"com.sunchenbin.store.feilong.core.date.DatePattern" map.put("clz.getSimpleName()", klass.getSimpleName());//"DatePattern" map.put("clz.getComponentType()", klass.getComponentType()); // ?? ,voidboolean?byte?char?short?int?long?float double? map.put("clz.isPrimitive()", klass.isPrimitive()); // ??, map.put("clz.isLocalClass()", klass.isLocalClass()); // ????,?,????? map.put("clz.isMemberClass()", klass.isMemberClass()); //isSynthetic()?Class????java??false,?true,JVM???,java?????? map.put("clz.isSynthetic()", klass.isSynthetic()); map.put("clz.isArray()", klass.isArray()); map.put("clz.isAnnotation()", klass.isAnnotation()); //??true map.put("clz.isAnonymousClass()", klass.isAnonymousClass()); map.put("clz.isEnum()", klass.isEnum()); return map; }
From source file:com.liferay.portal.jsonwebservice.JSONWebServiceConfigurator.java
private boolean _isJSONWebServiceClass(Class<?> clazz) { if (!clazz.isAnonymousClass() && !clazz.isArray() && !clazz.isEnum() && !clazz.isLocalClass() && !clazz.isPrimitive() && !(clazz.isMemberClass() ^ Modifier.isStatic(clazz.getModifiers()))) { return true; }/*from w w w .ja va 2 s .c o m*/ return false; }
From source file:com.baidu.bjf.remoting.protobuf.IDLProxyObject.java
private IDLProxyObject doSetFieldValue(String fullField, String field, Object value, Object object, boolean useCache, Map<String, ReflectInfo> cachedFields) { Field f;/*from w ww . j av a 2s . c o m*/ // check cache if (useCache) { ReflectInfo info = cachedFields.get(fullField); if (info != null) { setField(value, info.target, info.field); return this; } } int index = field.indexOf('.'); if (index != -1) { String parent = field.substring(0, index); String sub = field.substring(index + 1); try { f = FieldUtils.findField(object.getClass(), parent); if (f == null) { throw new RuntimeException( "No field '" + parent + "' found at class " + object.getClass().getName()); } Class<?> type = f.getType(); f.setAccessible(true); Object o = f.get(object); if (o == null) { boolean memberClass = type.isMemberClass(); if (memberClass && Modifier.isStatic(type.getModifiers())) { Constructor<?> constructor = type.getConstructor(new Class[0]); constructor.setAccessible(true); o = constructor.newInstance(new Object[0]); } else if (memberClass) { Constructor<?> constructor = type.getConstructor(new Class[] { object.getClass() }); constructor.setAccessible(true); o = constructor.newInstance(new Object[] { object }); } else { o = type.newInstance(); } f.set(object, o); } return put(fullField, sub, value, o); } catch (Exception e) { throw new RuntimeException(e.getMessage(), e); } } f = FieldUtils.findField(object.getClass(), field); if (f == null) { throw new RuntimeException("No field '" + field + "' found at class " + object.getClass().getName()); } if (useCache && !cachedFields.containsKey(fullField)) { cachedFields.put(fullField, new ReflectInfo(f, object)); } setField(value, object, f); return this; }
From source file:com.feilong.commons.core.lang.ClassUtil.java
/** * class info map for log./*from www. j a v a2 s . c o m*/ * * @param klass * the clz * @return the map for log */ public static Map<String, Object> getClassInfoMapForLog(Class<?> klass) { Map<String, Object> map = new LinkedHashMap<String, Object>(); //"clz.getCanonicalName()": "com.feilong.commons.core.date.DatePattern", //"clz.getName()": "com.feilong.commons.core.date.DatePattern", //"clz.getSimpleName()": "DatePattern", // getCanonicalName ( Java Language Specification ??) && getName //??class?array? // getName[[Ljava.lang.String?getCanonicalName? map.put("clz.getCanonicalName()", klass.getCanonicalName()); map.put("clz.getName()", klass.getName()); map.put("clz.getSimpleName()", klass.getSimpleName()); map.put("clz.getComponentType()", klass.getComponentType()); // ?? voidboolean?byte?char?short?int?long?float double? map.put("clz.isPrimitive()", klass.isPrimitive()); // ??, map.put("clz.isLocalClass()", klass.isLocalClass()); // ????,?????? map.put("clz.isMemberClass()", klass.isMemberClass()); //isSynthetic()?Class????java??false?trueJVM???java?????? map.put("clz.isSynthetic()", klass.isSynthetic()); map.put("clz.isArray()", klass.isArray()); map.put("clz.isAnnotation()", klass.isAnnotation()); //??true map.put("clz.isAnonymousClass()", klass.isAnonymousClass()); map.put("clz.isEnum()", klass.isEnum()); return map; // Class<?> klass = this.getClass(); // // TypeVariable<?>[] typeParameters = klass.getTypeParameters(); // TypeVariable<?> typeVariable = typeParameters[0]; // // Type[] bounds = typeVariable.getBounds(); // // Type bound = bounds[0]; // // if (log.isDebugEnabled()){ // log.debug("" + (bound instanceof ParameterizedType)); // } // // Class<T> modelClass = ReflectUtil.getGenericModelClass(klass); // return modelClass; }
From source file:cn.webwheel.DefaultMain.java
@SuppressWarnings("unchecked") private void autoMap(String root, String pkg, String name) { Class cls; try {/*w w w . j a v a 2s. c o m*/ cls = Class.forName(pkg + "." + name); } catch (ClassNotFoundException e) { return; } if (cls.isMemberClass() && !Modifier.isStatic(cls.getModifiers())) { return; } if (cls.isAnonymousClass() || cls.isLocalClass() || !Modifier.isPublic(cls.getModifiers()) || Modifier.isAbstract(cls.getModifiers())) { return; } name = name.replace('$', '.'); for (Method method : cls.getMethods()) { String pathPrefix = pkg.substring(root.length()).replace('.', '/') + '/'; String path = pathPrefix + name + '.' + method.getName(); Action action = getAction(cls, method); if (action == null) continue; if (!action.value().isEmpty()) { if (action.value().startsWith("?")) { path = path + action.value(); } else if (action.value().startsWith(".")) { path = pathPrefix + name + action.value(); } else if (!action.value().startsWith("/")) { path = pathPrefix + action.value(); } else { path = action.value(); } } ActionBinder binder = map(path); if (!action.rest().isEmpty()) { String rest = action.rest(); if (!rest.startsWith("/")) rest = pathPrefix + rest; binder = binder.rest(rest); } SetterConfig cfg = binder.with(cls, method); if (!action.charset().isEmpty()) { cfg = cfg.setCharset(action.charset()); } if (action.fileUploadFileSizeMax() != 0) { cfg = cfg.setFileUploadFileSizeMax(action.fileUploadFileSizeMax()); } if (action.fileUploadSizeMax() != 0) { cfg.setFileUploadSizeMax(action.fileUploadSizeMax()); } if (action.setterPolicy() != SetterPolicy.Auto) { cfg.setSetterPolicy(action.setterPolicy()); } } }
From source file:fr.exanpe.tapestry.tldgen.taglib.builder.StructureBuilder.java
/** * Builds the output taglib structure/*from w ww . j a va 2 s . c o m*/ * * @param rootPackage the root package to look the components for * @param supportedPackages all sub packages to scan * @param urls the urls used to scan the packages * @return the structure containing the information on the taglib to generate * @throws MojoExecutionException if any unexpected error occurs */ public Taglib build(String rootPackage, String[] supportedPackages, URL[] urls) throws MojoExecutionException { Taglib taglib = new Taglib(); log.debug("Creating taglib object model..."); for (String subPackage : supportedPackages) { String pkgname = rootPackage + "." + subPackage; log.debug("Processing taglib for full package named : " + pkgname); Reflections reflections = new Reflections(new ConfigurationBuilder() .filterInputsBy(new FilterBuilder.Include(FilterBuilder.prefix(pkgname))).setUrls(urls) .setScanners(new TypesScanner())); Store store = reflections.getStore(); // Return classes anaylised by TypeScanner Multimap<String, String> classes = store.getStoreMap().values().iterator().next(); log.debug(String.format("%s classes to analyse for %s package...", classes.keySet().size(), pkgname)); // Loop on found classes for (final String s : classes.keySet()) { Class<?> c; try { log.debug(String.format("Load class %s into classloader", s)); c = Thread.currentThread().getContextClassLoader().loadClass(s); } catch (ClassNotFoundException e) { // should not happen as it has just been parsed by Reflection... log.error(e); throw new MojoExecutionException("Class loader internal error for class :" + s, e); } if (!c.isAnnotation() && !c.isAnonymousClass() && !c.isEnum() && !c.isInterface() && !c.isLocalClass() && !c.isMemberClass() && !c.isSynthetic() && !Modifier.isAbstract(c.getModifiers())) { log.debug("Processing Tag : " + c.getName()); Tag tag = buildTagFromClass(rootPackage, c); taglib.getTags().add(tag); } } } log.debug("Taglib object model completed"); return taglib; }
From source file:hu.bme.mit.sette.common.validator.reflection.ClassValidator.java
/** * Sets the required type for the Java class. * * @param type/*from w ww . ja va2 s . c o m*/ * the required type for the Java class. * @return this object */ public ClassValidator type(final ClassType type) { Validate.notNull(type, "The type must not be null"); if (getSubject() != null) { Class<?> javaClass = getSubject(); boolean isTypeValid = false; switch (type) { case CLASS: isTypeValid = !javaClass.isInterface() && !javaClass.isEnum() && !javaClass.isAnnotation() && !javaClass.isPrimitive() && !javaClass.isArray(); break; case REGULAR_CLASS: isTypeValid = !javaClass.isInterface() && !javaClass.isEnum() && !javaClass.isAnnotation() && !javaClass.isPrimitive() && !javaClass.isArray() && !javaClass.isMemberClass() && !javaClass.isAnonymousClass() && !javaClass.isLocalClass(); break; case MEMBER_CLASS: isTypeValid = !javaClass.isInterface() && !javaClass.isEnum() && !javaClass.isAnnotation() && !javaClass.isPrimitive() && !javaClass.isArray() && javaClass.isMemberClass(); break; case ANONYMOUS_CLASS: isTypeValid = !javaClass.isInterface() && !javaClass.isEnum() && !javaClass.isAnnotation() && !javaClass.isPrimitive() && !javaClass.isArray() && javaClass.isAnonymousClass(); break; case LOCAL_CLASS: isTypeValid = !javaClass.isInterface() && !javaClass.isEnum() && !javaClass.isAnnotation() && !javaClass.isPrimitive() && !javaClass.isArray() && javaClass.isLocalClass(); break; case INTERFACE: isTypeValid = javaClass.isInterface(); break; case REGULAR_INTERFACE: isTypeValid = javaClass.isInterface() && !javaClass.isMemberClass(); break; case MEMBER_INTERFACE: isTypeValid = javaClass.isInterface() && javaClass.isMemberClass(); break; case ENUM: isTypeValid = javaClass.isEnum(); break; case REGULAR_ENUM: isTypeValid = javaClass.isEnum() && !javaClass.isMemberClass(); break; case MEMBER_ENUM: isTypeValid = javaClass.isEnum() && javaClass.isMemberClass(); break; case ANNOTATION: isTypeValid = javaClass.isAnnotation(); break; case REGULAR_ANNOTATION: isTypeValid = javaClass.isAnnotation() && !javaClass.isMemberClass(); break; case MEMBER_ANNOTATION: isTypeValid = javaClass.isAnnotation() && javaClass.isMemberClass(); break; case PRIMITIVE: isTypeValid = javaClass.isPrimitive(); break; case ARRAY: isTypeValid = javaClass.isArray(); break; default: throw new UnsupportedOperationException("Unknown class type: " + type); } if (!isTypeValid) { this.addException( String.format("The Java class must have the specified type\n" + "(type: [%s])", type)); } } return this; }
From source file:com.alibaba.fastjson.parser.ParserConfig.java
public ObjectDeserializer createJavaBeanDeserializer(Class<?> clazz, Type type) { boolean asmEnable = this.asmEnable & !this.fieldBased; if (asmEnable) { JSONType jsonType = TypeUtils.getAnnotation(clazz, JSONType.class); if (jsonType != null) { Class<?> deserializerClass = jsonType.deserializer(); if (deserializerClass != Void.class) { try { Object deseralizer = deserializerClass.newInstance(); if (deseralizer instanceof ObjectDeserializer) { return (ObjectDeserializer) deseralizer; }// w w w .ja v a 2 s .com } catch (Throwable e) { // skip } } asmEnable = jsonType.asm(); } if (asmEnable) { Class<?> superClass = JavaBeanInfo.getBuilderClass(clazz, jsonType); if (superClass == null) { superClass = clazz; } for (;;) { if (!Modifier.isPublic(superClass.getModifiers())) { asmEnable = false; break; } superClass = superClass.getSuperclass(); if (superClass == Object.class || superClass == null) { break; } } } } if (clazz.getTypeParameters().length != 0) { asmEnable = false; } if (asmEnable && asmFactory != null && asmFactory.classLoader.isExternalClass(clazz)) { asmEnable = false; } if (asmEnable) { asmEnable = ASMUtils.checkName(clazz.getSimpleName()); } if (asmEnable) { if (clazz.isInterface()) { asmEnable = false; } JavaBeanInfo beanInfo = JavaBeanInfo.build(clazz, type, propertyNamingStrategy); if (asmEnable && beanInfo.fields.length > 200) { asmEnable = false; } Constructor<?> defaultConstructor = beanInfo.defaultConstructor; if (asmEnable && defaultConstructor == null && !clazz.isInterface()) { asmEnable = false; } for (FieldInfo fieldInfo : beanInfo.fields) { if (fieldInfo.getOnly) { asmEnable = false; break; } Class<?> fieldClass = fieldInfo.fieldClass; if (!Modifier.isPublic(fieldClass.getModifiers())) { asmEnable = false; break; } if (fieldClass.isMemberClass() && !Modifier.isStatic(fieldClass.getModifiers())) { asmEnable = false; break; } if (fieldInfo.getMember() != null // && !ASMUtils.checkName(fieldInfo.getMember().getName())) { asmEnable = false; break; } JSONField annotation = fieldInfo.getAnnotation(); if (annotation != null // && ((!ASMUtils.checkName(annotation.name())) // || annotation.format().length() != 0 // || annotation.deserializeUsing() != Void.class // || annotation.unwrapped()) || (fieldInfo.method != null && fieldInfo.method.getParameterTypes().length > 1)) { asmEnable = false; break; } if (fieldClass.isEnum()) { // EnumDeserializer ObjectDeserializer fieldDeser = this.getDeserializer(fieldClass); if (!(fieldDeser instanceof EnumDeserializer)) { asmEnable = false; break; } } } } if (asmEnable) { if (clazz.isMemberClass() && !Modifier.isStatic(clazz.getModifiers())) { asmEnable = false; } } if (!asmEnable) { return new JavaBeanDeserializer(this, clazz, type); } JavaBeanInfo beanInfo = JavaBeanInfo.build(clazz, type, propertyNamingStrategy); try { return asmFactory.createJavaBeanDeserializer(this, beanInfo); // } catch (VerifyError e) { // e.printStackTrace(); // return new JavaBeanDeserializer(this, clazz, type); } catch (NoSuchMethodException ex) { return new JavaBeanDeserializer(this, clazz, type); } catch (JSONException asmError) { return new JavaBeanDeserializer(this, beanInfo); } catch (Exception e) { throw new JSONException("create asm deserializer error, " + clazz.getName(), e); } }