List of usage examples for java.lang Class isInterface
@HotSpotIntrinsicCandidate public native boolean isInterface();
From source file:com.ms.commons.summer.web.util.json.JsonBeanUtils.java
/** * Creates a bean from a JSONObject, with the specific configuration. *//* ww w .j a v a2 s.c om*/ public static Object toBean(JSONObject jsonObject, JsonConfig jsonConfig) { if (jsonObject == null || jsonObject.isNullObject()) { return null; } Class beanClass = jsonConfig.getRootClass(); Map classMap = jsonConfig.getClassMap(); if (beanClass == null) { return toBean(jsonObject); } if (classMap == null) { classMap = Collections.EMPTY_MAP; } Object bean = null; try { if (beanClass.isInterface()) { if (!Map.class.isAssignableFrom(beanClass)) { throw new JSONException("beanClass is an interface. " + beanClass); } else { bean = new HashMap(); } } else { bean = jsonConfig.getNewBeanInstanceStrategy().newInstance(beanClass, jsonObject); } } catch (JSONException jsone) { throw jsone; } catch (Exception e) { throw new JSONException(e); } Map props = JSONUtils.getProperties(jsonObject); PropertyFilter javaPropertyFilter = jsonConfig.getJavaPropertyFilter(); for (Iterator entries = jsonObject.names().iterator(); entries.hasNext();) { String name = (String) entries.next(); Class type = (Class) props.get(name); Object value = jsonObject.get(name); if (javaPropertyFilter != null && javaPropertyFilter.apply(bean, name, value)) { continue; } String key = Map.class.isAssignableFrom(beanClass) && jsonConfig.isSkipJavaIdentifierTransformationInMapKeys() ? name : JSONUtils.convertToJavaIdentifier(name, jsonConfig); try { if (Map.class.isAssignableFrom(beanClass)) { // no type info available for conversion if (JSONUtils.isNull(value)) { setProperty(bean, key, value, jsonConfig); } else if (value instanceof JSONArray) { setProperty(bean, key, convertPropertyValueToCollection(key, value, jsonConfig, name, classMap, List.class), jsonConfig); } else if (String.class.isAssignableFrom(type) || JSONUtils.isBoolean(type) || JSONUtils.isNumber(type) || JSONUtils.isString(type) || JSONFunction.class.isAssignableFrom(type)) { if (jsonConfig.isHandleJettisonEmptyElement() && "".equals(value)) { setProperty(bean, key, null, jsonConfig); } else { setProperty(bean, key, value, jsonConfig); } } else { Class targetClass = findTargetClass(key, classMap); targetClass = targetClass == null ? findTargetClass(name, classMap) : targetClass; JsonConfig jsc = jsonConfig.copy(); jsc.setRootClass(targetClass); jsc.setClassMap(classMap); if (targetClass != null) { setProperty(bean, key, toBean((JSONObject) value, jsc), jsonConfig); } else { setProperty(bean, key, toBean((JSONObject) value), jsonConfig); } } } else { PropertyDescriptor pd = PropertyUtils.getPropertyDescriptor(bean, key); if (pd != null && pd.getWriteMethod() == null) { log.warn("Property '" + key + "' has no write method. SKIPPED."); continue; } if (pd != null) { Class targetType = pd.getPropertyType(); if (!JSONUtils.isNull(value)) { if (value instanceof JSONArray) { if (List.class.isAssignableFrom(pd.getPropertyType())) { setProperty(bean, key, convertPropertyValueToCollection(key, value, jsonConfig, name, classMap, pd.getPropertyType()), jsonConfig); } else if (Set.class.isAssignableFrom(pd.getPropertyType())) { setProperty(bean, key, convertPropertyValueToCollection(key, value, jsonConfig, name, classMap, pd.getPropertyType()), jsonConfig); } else { setProperty(bean, key, convertPropertyValueToArray(key, value, targetType, jsonConfig, classMap), jsonConfig); } } else if (String.class.isAssignableFrom(type) || JSONUtils.isBoolean(type) || JSONUtils.isNumber(type) || JSONUtils.isString(type) || JSONFunction.class.isAssignableFrom(type)) { if (pd != null) { if (jsonConfig.isHandleJettisonEmptyElement() && "".equals(value)) { setProperty(bean, key, null, jsonConfig); } else if (!targetType.isInstance(value)) { setProperty(bean, key, morphPropertyValue(key, value, type, targetType), jsonConfig); } else { setProperty(bean, key, value, jsonConfig); } } else if (beanClass == null || bean instanceof Map) { setProperty(bean, key, value, jsonConfig); } else { log.warn("Tried to assign property " + key + ":" + type.getName() + " to bean of class " + bean.getClass().getName()); } } else { if (jsonConfig.isHandleJettisonSingleElementArray()) { JSONArray array = new JSONArray().element(value, jsonConfig); Class newTargetClass = findTargetClass(key, classMap); newTargetClass = newTargetClass == null ? findTargetClass(name, classMap) : newTargetClass; JsonConfig jsc = jsonConfig.copy(); jsc.setRootClass(newTargetClass); jsc.setClassMap(classMap); if (targetType.isArray()) { setProperty(bean, key, JSONArray.toArray(array, jsc), jsonConfig); } else if (JSONArray.class.isAssignableFrom(targetType)) { setProperty(bean, key, array, jsonConfig); } else if (List.class.isAssignableFrom(targetType) || Set.class.isAssignableFrom(targetType)) { jsc.setCollectionType(targetType); setProperty(bean, key, JSONArray.toCollection(array, jsc), jsonConfig); } else { setProperty(bean, key, toBean((JSONObject) value, jsc), jsonConfig); } } else { if (targetType == Object.class) { targetType = findTargetClass(key, classMap); targetType = targetType == null ? findTargetClass(name, classMap) : targetType; } JsonConfig jsc = jsonConfig.copy(); jsc.setRootClass(targetType); jsc.setClassMap(classMap); setProperty(bean, key, toBean((JSONObject) value, jsc), jsonConfig); } } } else { if (type.isPrimitive()) { // assume assigned default value log.warn("Tried to assign null value to " + key + ":" + type.getName()); setProperty(bean, key, JSONUtils.getMorpherRegistry().morph(type, null), jsonConfig); } else { setProperty(bean, key, null, jsonConfig); } } } else { if (!JSONUtils.isNull(value)) { if (value instanceof JSONArray) { setProperty(bean, key, convertPropertyValueToCollection(key, value, jsonConfig, name, classMap, List.class), jsonConfig); } else if (String.class.isAssignableFrom(type) || JSONUtils.isBoolean(type) || JSONUtils.isNumber(type) || JSONUtils.isString(type) || JSONFunction.class.isAssignableFrom(type)) { if (pd != null) { if (jsonConfig.isHandleJettisonEmptyElement() && "".equals(value)) { setProperty(bean, key, null, jsonConfig); } else { setProperty(bean, key, value, jsonConfig); } } else if (beanClass == null || bean instanceof Map) { setProperty(bean, key, value, jsonConfig); } else { log.warn("Tried to assign property " + key + ":" + type.getName() + " to bean of class " + bean.getClass().getName()); } } else { if (jsonConfig.isHandleJettisonSingleElementArray()) { Class newTargetClass = findTargetClass(key, classMap); newTargetClass = newTargetClass == null ? findTargetClass(name, classMap) : newTargetClass; JsonConfig jsc = jsonConfig.copy(); jsc.setRootClass(newTargetClass); jsc.setClassMap(classMap); setProperty(bean, key, toBean((JSONObject) value, jsc), jsonConfig); } else { setProperty(bean, key, value, jsonConfig); } } } else { if (type.isPrimitive()) { // assume assigned default value log.warn("Tried to assign null value to " + key + ":" + type.getName()); setProperty(bean, key, JSONUtils.getMorpherRegistry().morph(type, null), jsonConfig); } else { setProperty(bean, key, null, jsonConfig); } } } } } catch (JSONException jsone) { throw jsone; } catch (Exception e) { throw new JSONException("Error while setting property=" + name + " type " + type, e); } } return bean; }
From source file:de.itsvs.cwtrpc.controller.RemoteServiceConfig.java
public void setServiceInterface(Class<?> serviceInterface) { if ((serviceInterface != null) && !serviceInterface.isInterface()) { throw new IllegalArgumentException(serviceInterface.getName() + " is no interface"); }//from w w w.ja va 2 s . c om this.serviceInterface = serviceInterface; }
From source file:example.xmlbeam.XmlBeamHttpMessageConverter.java
@Override public boolean canRead(Class<?> clazz, MediaType mediaType) { return clazz.isInterface() && mediaType.isCompatibleWith(MediaType.APPLICATION_XML); }
From source file:org.force66.beantester.valuegens.InterfaceValueGenerator.java
@Override public boolean canGenerate(Class<?> targetClass) { if (targetClass == null) return false; return targetClass.isInterface(); }
From source file:org.apache.crunch.hadoop.mapreduce.TaskAttemptContextFactory.java
private TaskAttemptContextFactory() { Class<TaskAttemptContext> implClass = TaskAttemptContext.class; if (implClass.isInterface()) { try {/* w ww .j a va 2 s . c o m*/ implClass = (Class<TaskAttemptContext>) Class .forName("org.apache.hadoop.mapreduce.task.TaskAttemptContextImpl"); } catch (ClassNotFoundException e) { LOG.fatal("Could not find TaskAttemptContextImpl class, exiting", e); } } try { this.taskAttemptConstructor = implClass.getConstructor(Configuration.class, TaskAttemptID.class); } catch (Exception e) { LOG.fatal("Could not access TaskAttemptContext constructor, exiting", e); } }
From source file:org.force66.beantester.valuegens.InterfaceValueGenerator.java
public InterfaceValueGenerator(Class<?> type) { Validate.notNull(type, "Null interface type not allowed"); Validate.isTrue(type.isInterface(), "Provided class must be an interface. class=%s", type.getName()); interfaceType = type;//from w w w. j ava2 s .c o m }
From source file:com.sf.ddao.orm.rsmapper.CollectionRSMapper.java
public CollectionRSMapper(Class<? extends Collection> listType, RowMapperFactory rowMapperFactory) { this.listType = listType.isInterface() ? ArrayList.class : listType; this.rowMapperFactory = rowMapperFactory; }
From source file:cat.albirar.framework.proxy.ProxyFactory.java
/** * Create a proxy for the indicated type. * @param handler The handler/*from w ww . j av a 2s . c o m*/ * @param type The type, should to be a interface type * @return The proxy */ @SuppressWarnings("unchecked") private <T> T newProxyForInterface(java.lang.reflect.InvocationHandler handler, Class<T> type) { Assert.isTrue(type.isInterface(), "The type should to be an interface"); return (T) Proxy.newProxyInstance(type.getClassLoader(), new Class[] { type }, handler); }
From source file:net.kaczmarzyk.spring.data.jpa.web.JoinFetchSpecificationResolver.java
@Override public boolean supportsParameter(MethodParameter param) { Class<?> paramType = param.getParameterType(); return paramType.isInterface() && Specification.class.isAssignableFrom(paramType) && (isAnnotatedWith(JoinFetch.class, param) || isAnnotatedWith(Joins.class, param)); }
From source file:podd.model.visitor.VisitorAdapterUnitTest.java
private void resolveAndCheckPackage(Set<BeanDefinition> components) throws ClassNotFoundException, NoSuchMethodException { for (BeanDefinition component : components) { Class cls = Class.forName(component.getBeanClassName()); if (cls.isInterface()) { String methodName = "visit" + cls.getSimpleName(); Visitor.class.getMethod(methodName, cls); Method mtd = VisitorAdapter.class.getMethod(methodName, cls); assertNotNull(mtd);/*w w w . j ava 2 s.c om*/ } } }