/** * Clears the caches when Sirius is shutting down */ @Register public static class CacheManagerLifecycle implements Stoppable { @Override public void stopped() { caches.values().forEach(ManagedCache::clear); caches.clear(); } } }
@Override public void handle(MutableGlobalContext ctx, Class<?> clazz) throws Exception { Register r = clazz.getAnnotation(Register.class); if (!Sirius.isFrameworkEnabled(r.framework())) { return; Set<Class<?>> classes = Sets.newHashSet(r.classes()); if (classes.isEmpty()) { classes = Sets.newHashSet(clazz.getInterfaces()); String name = r.name(); if (part instanceof Named) { classes.remove(Named.class);
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return BigDecimal.class.equals(field.getType()); } @Override public Property create(Field field) { return new BigDecimalProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return EntityRef.class.equals(field.getType()) && field.isAnnotationPresent(RefType.class); } @Override public Property create(Field field) { return new EntityProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return LocalDate.class.equals(field.getType()); } @Override public Property create(Field field) { return new LocalDateProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return Double.class.equals(field.getType()) || double.class.equals(field.getType()); } @Override public Property create(Field field) { return new DoubleProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return Long.class.equals(field.getType()) || long.class.equals(field.getType()); } @Override public Property create(Field field) { return new LongProperty(field); } }
/** * Factory for generating properties based on having a {@link NestedObject} annotation. */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return field.isAnnotationPresent(NestedObject.class) && !field.getType().equals(AutoCompletion.class); } @Override public Property create(Field field) { return new ObjectProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return Boolean.class.equals(field.getType()) || boolean.class.equals(field.getType()); } @Override public Property create(Field field) { return new BooleanProperty(field); } }
/** * Factory for generating properties of type {@link AutoCompletion} . */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return field.getType().equals(AutoCompletion.class); } @Override public Property create(Field field) { return new CompleterProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return String.class.equals(field.getType()); } @Override public Property create(Field field) { return new StringProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return Integer.class.equals(field.getType()) || int.class.equals(field.getType()); } @Override public Property create(Field field) { return new IntProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return Map.class.equals(field.getType()) && field.isAnnotationPresent(MapType.class) && List.class.equals( field.getAnnotation(MapType.class).value()); } @Override public Property create(Field field) { return new StringListMapProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return Map.class.equals(field.getType()) && field.isAnnotationPresent(MapType.class) && String.class.equals( field.getAnnotation(MapType.class).value()); } @Override public Property create(Field field) { return new StringMapProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return EntityRefList.class.equals(field.getType()) && field.isAnnotationPresent(RefType.class); } @Override public Property create(Field field) { return new EntityListProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return Amount.class.equals(field.getType()); } @Override public Property create(Field field) { return new AmountProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return field.getType().isEnum(); } @Override public Property create(Field field) { return new EnumProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return LocalDateTime.class.equals(field.getType()); } @Override public Property create(Field field) { return new LocalDateTimeProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(Field field) { return List.class.equals(field.getType()) && field.isAnnotationPresent(ListType.class) && String.class.equals(field.getAnnotation(ListType.class).value()); } @Override public Property create(Field field) { return new StringListProperty(field); } }
/** * Factory for generating properties based on their field type */ @Register public static class Factory implements PropertyFactory { @Override public boolean accepts(EntityDescriptor descriptor, Field field) { return String.class.equals(field.getType()); } @Override public void create(EntityDescriptor descriptor, AccessPath accessPath, Field field, Consumer<Property> propertyConsumer) { propertyConsumer.accept(new StringProperty(descriptor, accessPath, field)); } }