Class CopyablePlugin


  • public class CopyablePlugin
    extends AbstractParameterizablePlugin
    With this plug-in you can "copy onto" another object, use strategies to customize copying (how exactly should this or that be copied), use locators to check what exactly is being copied at the moment and so on. But the main reason for dependency is to avoid generating the same cloning code all over the place for each of the fields of each of the generated classes. The copying algorithmic is held in copy strategies.
    Author:
    Alexey Valikov
    • Constructor Detail

      • CopyablePlugin

        public CopyablePlugin()
    • Method Detail

      • getOptionName

        public String getOptionName()
        Specified by:
        getOptionName in class com.sun.tools.xjc.Plugin
      • getUsage

        public String getUsage()
        Specified by:
        getUsage in class com.sun.tools.xjc.Plugin
      • setFieldAccessorFactory

        public void setFieldAccessorFactory​(FieldAccessorFactory fieldAccessorFactory)
      • setCopyStrategyClass

        public void setCopyStrategyClass​(String copyStrategy)
      • getCopyStrategyClass

        public String getCopyStrategyClass()
      • createCopyStrategy

        public com.sun.codemodel.JExpression createCopyStrategy​(com.sun.codemodel.JCodeModel codeModel)
      • getIgnoring

        public Ignoring getIgnoring()
      • setIgnoring

        public void setIgnoring​(Ignoring ignoring)
      • run

        public boolean run​(com.sun.tools.xjc.outline.Outline outline,
                           com.sun.tools.xjc.Options opt,
                           ErrorHandler errorHandler)
        Overrides:
        run in class AbstractPlugin
      • processClassOutline

        protected void processClassOutline​(com.sun.tools.xjc.outline.ClassOutline classOutline)
      • generateCopyTo$createNewInstance

        protected com.sun.codemodel.JMethod generateCopyTo$createNewInstance​(com.sun.tools.xjc.outline.ClassOutline classOutline,
                                                                             com.sun.codemodel.JDefinedClass theClass)
      • generateObject$clone

        protected com.sun.codemodel.JMethod generateObject$clone​(com.sun.tools.xjc.outline.ClassOutline classOutline,
                                                                 com.sun.codemodel.JDefinedClass theClass)
      • generateCopyTo$copyTo

        protected com.sun.codemodel.JMethod generateCopyTo$copyTo​(com.sun.tools.xjc.outline.ClassOutline classOutline,
                                                                  com.sun.codemodel.JDefinedClass theClass)
      • generateCopyTo$copyTo1

        protected com.sun.codemodel.JMethod generateCopyTo$copyTo1​(com.sun.tools.xjc.outline.ClassOutline classOutline,
                                                                   com.sun.codemodel.JDefinedClass theClass)