@Override public Schema getSchema( Class<?> klass ) { if ( klass == null ) { return null; } klass = ReflectionUtils.getRealClass( klass ); if ( classSchemaMap.containsKey( klass ) ) { return classSchemaMap.get( klass ); } if ( dynamicClassSchemaMap.containsKey( klass ) ) { return dynamicClassSchemaMap.get( klass ); } return null; }
/** * Returns a list of data dimension options which match the given data * dimension item type. * * @param itemType the data dimension item type. * @param dataDimensionOptions the data dimension options. * @return list of nameable objects. */ public static List<DimensionalItemObject> getByDataDimensionItemType( DataDimensionItemType itemType, List<DimensionalItemObject> dataDimensionOptions ) { List<DimensionalItemObject> list = new ArrayList<>(); for ( DimensionalItemObject object : dataDimensionOptions ) { Class<?> clazz = ReflectionUtils.getRealClass( object.getClass() ); if ( clazz.equals( DATA_DIMENSION_TYPE_CLASS_MAP.get( itemType ) ) ) { list.add( object ); } } return list; }
@SuppressWarnings( "unchecked" ) private void addIdentifiers( Map<PreheatIdentifier, Map<Class<? extends IdentifiableObject>, Set<String>>> map, IdentifiableObject identifiableObject ) { if ( identifiableObject == null ) return; Map<Class<? extends IdentifiableObject>, Set<String>> uidMap = map.get( PreheatIdentifier.UID ); Map<Class<? extends IdentifiableObject>, Set<String>> codeMap = map.get( PreheatIdentifier.CODE ); Class<? extends IdentifiableObject> klass = (Class<? extends IdentifiableObject>) ReflectionUtils.getRealClass( identifiableObject.getClass() ); if ( !uidMap.containsKey( klass ) ) uidMap.put( klass, new HashSet<>() ); if ( !codeMap.containsKey( klass ) ) codeMap.put( klass, new HashSet<>() ); if ( !StringUtils.isEmpty( identifiableObject.getUid() ) ) uidMap.get( klass ).add( identifiableObject.getUid() ); if ( !StringUtils.isEmpty( identifiableObject.getCode() ) ) codeMap.get( klass ).add( identifiableObject.getCode() ); }
@Override public boolean isDefault( IdentifiableObject object ) { Map<Class<? extends IdentifiableObject>, IdentifiableObject> defaults = getDefaults(); if ( object == null ) { return false; } Class<?> realClass = getRealClass( object.getClass() ); if ( !defaults.containsKey( realClass ) ) { return false; } IdentifiableObject defaultObject = defaults.get( realClass ); return defaultObject != null && defaultObject.getUid().equals( object.getUid() ); }
@Override public Schema getDynamicSchema( Class<?> klass ) { if ( klass == null ) { return null; } Schema schema = getSchema( klass ); if ( schema != null ) { return schema; } klass = propertyIntrospectorService.getConcreteClass( ReflectionUtils.getRealClass( klass ) ); String name = getName( klass ); schema = new Schema( klass, name, name + "s" ); schema.setDisplayName( beautify( schema ) ); schema.setPropertyMap( new HashMap<>( propertyIntrospectorService.getPropertiesMap( schema.getKlass() ) ) ); updateSelf( schema ); dynamicClassSchemaMap.put( klass, schema ); return schema; }
Class<?> dimClass = ReflectionUtils.getRealClass( dimObject.getClass() );