Class PluginAdapterImpl

  • All Implemented Interfaces:
    PluginAdapter

    public class PluginAdapterImpl
    extends java.lang.Object
    implements PluginAdapter
    Plugin adapter implementation
    • Constructor Detail

      • PluginAdapterImpl

        public PluginAdapterImpl()
    • Method Detail

      • canBuildDescription

        public boolean canBuildDescription​(java.lang.Object object)
        Specified by:
        canBuildDescription in interface PluginAdapter
        Parameters:
        object - potential plugin object annotated with Plugin
        Returns:
        true if the object has a valid Plugin annotation
      • buildDescription

        public Description buildDescription​(java.lang.Object object,
                                            DescriptionBuilder builder)
        Specified by:
        buildDescription in interface PluginAdapter
        Parameters:
        object - the object
        builder - builder
        Returns:
        Create a Description using a builder by analyzing the annotations on a plugin object, and including annotations on fields as DescriptionProperties.
      • buildDescription

        public Description buildDescription​(java.lang.Class<?> type,
                                            DescriptionBuilder builder)
        Specified by:
        buildDescription in interface PluginAdapter
        Parameters:
        type - the type
        builder - builder
        Returns:
        Create a Description using a builder by analyzing the annotations on a plugin type, and including annotations on fields as DescriptionProperties.
      • buildDescription

        public Description buildDescription​(java.lang.Object object,
                                            DescriptionBuilder builder,
                                            boolean includeAnnotatedFieldProperties)
        Specified by:
        buildDescription in interface PluginAdapter
        Parameters:
        object - the object
        builder - builder
        includeAnnotatedFieldProperties - if true, add DescriptionProperties to the Description based on annotations of fields in the class of the instance
        Returns:
        Create a Description using a builder by analyzing the annotations on a plugin object.
      • buildDescription

        public Description buildDescription​(java.lang.Class<?> type,
                                            DescriptionBuilder builder,
                                            boolean includeAnnotatedFieldProperties)
        Specified by:
        buildDescription in interface PluginAdapter
        Parameters:
        builder - builder
        includeAnnotatedFieldProperties - if true, add DescriptionProperties to the Description based on annotations of fields in the class of the instance
        Returns:
        Create a Description using a builder by analyzing the annotations on a plugin object.
      • loadPluginMetadata

        public java.util.Map<java.lang.String,​java.lang.String> loadPluginMetadata​(java.lang.Class<?> clazz)
        Specified by:
        loadPluginMetadata in interface PluginAdapter
      • buildFieldProperties

        public java.util.List<Property> buildFieldProperties​(java.lang.Object object)
        Return the list of properties by introspecting the annotated fields for PluginProperty
        Specified by:
        buildFieldProperties in interface PluginAdapter
        Parameters:
        object - object
        Returns:
        list of properties, may be empty
      • buildFieldProperties

        public java.util.List<Property> buildFieldProperties​(java.lang.Class<?> aClass)
        Return the list of properties by introspecting the annotated fields for PluginProperty
        Specified by:
        buildFieldProperties in interface PluginAdapter
        Parameters:
        aClass - class
        Returns:
        list of properties, may be empty
      • buildFieldProperties

        public void buildFieldProperties​(java.lang.Object object,
                                         DescriptionBuilder builder)
        Add properties based on introspection of the object
        Specified by:
        buildFieldProperties in interface PluginAdapter
        Parameters:
        object - object
        builder - builder
      • buildFieldProperties

        public void buildFieldProperties​(java.lang.Class<?> aClass,
                                         DescriptionBuilder builder)
        Add properties based on introspection of a class
        Specified by:
        buildFieldProperties in interface PluginAdapter
        Parameters:
        aClass - class
        builder - builder
      • fieldForPropertyName

        public java.lang.reflect.Field fieldForPropertyName​(java.lang.String name,
                                                            java.lang.Object object)
        Specified by:
        fieldForPropertyName in interface PluginAdapter
      • collectFields

        public java.util.Collection<java.lang.reflect.Field> collectFields​(java.lang.Object object)
        Specified by:
        collectFields in interface PluginAdapter
      • collectClassFields

        public java.util.Collection<java.lang.reflect.Field> collectClassFields​(java.lang.Class<?> aClass)
        Specified by:
        collectClassFields in interface PluginAdapter
      • notBlank

        public boolean notBlank​(java.lang.String string)
        Specified by:
        notBlank in interface PluginAdapter
      • configureProperties

        public java.util.Map<java.lang.String,​java.lang.Object> configureProperties​(PropertyResolver resolver,
                                                                                          java.lang.Object object)
        Set field values on a plugin object by using annotated field values to create a Description, and setting field values to resolved property values. Any resolved properties that are not mapped to a field will be included in the return result.
        Specified by:
        configureProperties in interface PluginAdapter
        Parameters:
        resolver - property resolver
        object - plugin object
        Returns:
        Map of resolved properties that were not configured in the object's fields
      • configureProperties

        public java.util.Map<java.lang.String,​java.lang.Object> configureProperties​(PropertyResolver resolver,
                                                                                          Description description,
                                                                                          java.lang.Object object,
                                                                                          PropertyScope defaultScope)
        Set field values on a plugin object by using a Description, and setting field values to resolved property values. Any resolved properties that are not mapped to a field will be included in the return result.
        Specified by:
        configureProperties in interface PluginAdapter
        Parameters:
        resolver - the property resolver
        description - the property descriptions
        object - the target object, which can implement Configurable, otherwise introspection will be used
        defaultScope - a default property scope to assume for unspecified properties
        Returns:
        Map of resolved properties that were not configured in the object's fields
      • configureObjectFieldsWithProperties

        public java.util.Map<java.lang.String,​java.lang.Object> configureObjectFieldsWithProperties​(java.lang.Object object,
                                                                                                          java.util.Map<java.lang.String,​java.lang.Object> inputConfig)
        Set field values on an object using introspection and input values for those properties
        Specified by:
        configureObjectFieldsWithProperties in interface PluginAdapter
        Parameters:
        object - object
        inputConfig - input
        Returns:
        Map of resolved properties that were not configured in the object's fields
      • configureObjectFieldsWithProperties

        public java.util.Map<java.lang.String,​java.lang.Object> configureObjectFieldsWithProperties​(java.lang.Object object,
                                                                                                          java.util.List<Property> properties,
                                                                                                          java.util.Map<java.lang.String,​java.lang.Object> inputConfig)
        Set field values on an object given a list of properties and input values for those properties
        Specified by:
        configureObjectFieldsWithProperties in interface PluginAdapter
        Parameters:
        object - object
        properties - properties
        inputConfig - input
        Returns:
        Map of resolved properties that were not configured in the object's fields
      • mapDescribedProperties

        public java.util.Map<java.lang.String,​java.lang.Object> mapDescribedProperties​(PropertyResolver resolver,
                                                                                             Description description)
        Retrieve the Description's Properties mapped to resolved values given the resolver, using InsanceOnly default scope.
        Specified by:
        mapDescribedProperties in interface PluginAdapter
        Parameters:
        resolver - property resolver
        description - plugin description
        Returns:
        All mapped properties by name and value.
      • mapDescribedProperties

        public java.util.Map<java.lang.String,​java.lang.Object> mapDescribedProperties​(PropertyResolver resolver,
                                                                                             Description description,
                                                                                             PropertyScope defaultPropertyScope)
        Retrieve the Description's Properties mapped to resolved values given the resolver, with a default property scope
        Specified by:
        mapDescribedProperties in interface PluginAdapter
        Parameters:
        resolver - property resolver
        description - plugin description
        defaultPropertyScope - default scope for unspecified property scopes
        Returns:
        All mapped properties by name and value.
      • mapProperties

        public java.util.Map<java.lang.String,​java.lang.Object> mapProperties​(PropertyResolver resolver,
                                                                                    java.util.List<Property> properties,
                                                                                    PropertyScope defaultPropertyScope)
        Retrieve the Properties mapped to resolved values given the resolver, with a default property scope
        Specified by:
        mapProperties in interface PluginAdapter
        Parameters:
        resolver - property resolver
        properties - properties
        defaultPropertyScope - default scope for unspecified property scopes
        Returns:
        All mapped properties by name and value.
      • setConfig

        public void setConfig​(java.lang.Object object,
                              java.lang.Object config)
        Set config on fields annotated with PluginConfig PluginCustomConfig
        Specified by:
        setConfig in interface PluginAdapter
        Parameters:
        object -
        config -