Class AbstractInterfaceTransformer<S extends io.polygenesis.core.Nameable,​F extends io.polygenesis.abstraction.thing.FunctionProvider>

  • Type Parameters:
    S - the type parameter
    All Implemented Interfaces:
    io.polygenesis.core.TemplateTransformer<S>, io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S>

    public abstract class AbstractInterfaceTransformer<S extends io.polygenesis.core.Nameable,​F extends io.polygenesis.abstraction.thing.FunctionProvider>
    extends AbstractTransformer
    implements io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S>
    The type Abstract interface representable.
    Author:
    Christos Tsakostas
    • Field Detail

      • methodTransformer

        protected final io.polygenesis.generators.java.shared.transformer.MethodTransformer<F extends io.polygenesis.abstraction.thing.FunctionProvider> methodTransformer
    • Constructor Detail

      • AbstractInterfaceTransformer

        public AbstractInterfaceTransformer​(io.polygenesis.core.DataTypeTransformer dataTypeTransformer,
                                            io.polygenesis.generators.java.shared.transformer.MethodTransformer<F> methodTransformer)
    • Method Detail

      • transform

        public io.polygenesis.core.TemplateData transform​(S source,
                                                          Object... args)
        Specified by:
        transform in interface io.polygenesis.core.TemplateTransformer<S extends io.polygenesis.core.Nameable>
      • create

        public io.polygenesis.representations.code.InterfaceRepresentation create​(S source,
                                                                                  Object... args)
        Specified by:
        create in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • methodRepresentations

        public Set<io.polygenesis.representations.code.MethodRepresentation> methodRepresentations​(S source,
                                                                                                   Object... args)
        Specified by:
        methodRepresentations in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • packageName

        public String packageName​(S source,
                                  Object... args)
        Specified by:
        packageName in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • imports

        public Set<String> imports​(S source,
                                   Object... args)
        Specified by:
        imports in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • annotations

        public Set<String> annotations​(S source,
                                       Object... args)
        Specified by:
        annotations in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • description

        public String description​(S source,
                                  Object... args)
        Specified by:
        description in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • modifiers

        public String modifiers​(S source,
                                Object... args)
        Specified by:
        modifiers in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • simpleObjectName

        public String simpleObjectName​(S source,
                                       Object... args)
        Specified by:
        simpleObjectName in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • fullObjectName

        public String fullObjectName​(S source,
                                     Object... args)
        Specified by:
        fullObjectName in interface io.polygenesis.generators.java.shared.transformer.InterfaceTransformer<S extends io.polygenesis.core.Nameable>
      • makeCanonicalObjectName

        protected String makeCanonicalObjectName​(io.polygenesis.commons.valueobjects.PackageName packageName,
                                                 String dataType)
        Make canonical object name string.
        Parameters:
        packageName - the package name
        dataType - the data type
        Returns:
        the string