// Path: org.jenerate/src/java/org/jenerate/internal/strategy/method/content/impl/commonslang/CommonsLangToStringStyle.java
// public enum CommonsLangToStringStyle {
//     NO_STYLE("Person@182f0db[name=John Doe,age=33,smoker=false]"),
// 
//     DEFAULT_STYLE("Person@182f0db[name=John Doe,age=33,smoker=false]"),
//     MULTI_LINE_STYLE("Person@182f0db[\n   name=John Doe\n   age=33\n   smoker=false\n ]"),
//     NO_FIELD_NAMES_STYLE("Person@182f0db[John Doe,33,false]"),
//     SHORT_PREFIX_STYLE("Person[name=John Doe,age=33,smoker=false]"),
//     SIMPLE_STYLE("John Doe,33,false"),
//     NO_CLASS_NAME_STYLE("[name=John Doe,age=33,smoker=false]", " (since Commons Lang 3.4)"),
//     JSON_STYLE("{\"name\": \"John Doe\", \"age\": 33, \"smoker\": true}", " (since Commons Lang 3.4)");
// 
//     private static final String PREFIX = "Example:\n";
// 
//     /**
//      * tooltip to show in the toString dialog. Based on the examples in
//      * http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ToStringStyle.html
//      */
//     private final String toolTip;
// 
//     /**
//      * Potential suffix to display in the to string generation dialog style list.
//      */
//     private final String displaySuffix;
// 
//     private CommonsLangToStringStyle(String toolTip) {
//         this.toolTip = toolTip;
//         this.displaySuffix = "";
//     }
// 
//     private CommonsLangToStringStyle(String toolTip, String displaySuffix) {
//         this.toolTip = toolTip;
//         this.displaySuffix = displaySuffix;
//     }
// 
//     public String getFullStyle() {
//         return CommonsLangMethodContentLibraries.TO_STRING_STYLE + CommonsLangMethodContentLibraries.DOT_STRING
//                 + name();
//     }
// 
//     public String getFullLibraryString(StrategyIdentifier strategyIdentifier) {
//         if (MethodContentStrategyIdentifier.USE_COMMONS_LANG.equals(strategyIdentifier)) {
//             return CommonsLangMethodContentLibraries.COMMONS_LANG_PREFIX
//                     + CommonsLangMethodContentLibraries.BUILDER_STRING + getFullStyle();
//         }
//         if (MethodContentStrategyIdentifier.USE_COMMONS_LANG3.equals(strategyIdentifier)) {
//             return CommonsLangMethodContentLibraries.COMMONS_LANG_PREFIX
//                     + CommonsLangMethodContentLibraries.COMMONS_LANG3_ADDON
//                     + CommonsLangMethodContentLibraries.BUILDER_STRING + getFullStyle();
//         }
//         throw new UnsupportedOperationException(
//                 "The full library string for the toString style is not currently handled for strategy '"
//                         + strategyIdentifier + "' ");
//     }
// 
//     public static CommonsLangToStringStyle getToStringStyle(String fullLibraryString) {
//         EnumSet<CommonsLangToStringStyle> enumSet = EnumSet.allOf(CommonsLangToStringStyle.class);
//         for (CommonsLangToStringStyle style : enumSet) {
//             if (fullLibraryString.contains(style.name())) {
//                 return style;
//             }
//         }
//         return NO_STYLE;
//     }
// 
//     public String getToolTip() {
//         return PREFIX + toolTip;
//     }
// 
//     public String getDisplayableLibraryString() {
//         return getFullStyle() + this.displaySuffix;
//     }
// 
// }


import org.jenerate.internal.domain.data.ToStringGenerationData;
import org.jenerate.internal.strategy.method.content.impl.commonslang.CommonsLangToStringStyle;

package org.jenerate.internal.domain.data.impl;


/**
 * Specific implementation of the {@link ToStringGenerationData}
 * 
 * @author maudrain
 */
public class ToStringGenerationDataImpl extends AbstractMethodGenerationData implements ToStringGenerationData {

    private final CommonsLangToStringStyle toStringStyle;

    private ToStringGenerationDataImpl(Builder builder) {
        super(builder);
        this.toStringStyle = builder.builderToStringStyle;
    }

    @Override
    public CommonsLangToStringStyle getToStringStyle() {
        return toStringStyle;
    }

    public static class Builder extends AbstractMethodGenerationData.Builder<Builder> {


// Path: org.jenerate/src/java/org/jenerate/internal/strategy/method/content/impl/commonslang/CommonsLangToStringStyle.java
// public enum CommonsLangToStringStyle {
//     NO_STYLE("Person@182f0db[name=John Doe,age=33,smoker=false]"),
// 
//     DEFAULT_STYLE("Person@182f0db[name=John Doe,age=33,smoker=false]"),
//     MULTI_LINE_STYLE("Person@182f0db[\n   name=John Doe\n   age=33\n   smoker=false\n ]"),
//     NO_FIELD_NAMES_STYLE("Person@182f0db[John Doe,33,false]"),
//     SHORT_PREFIX_STYLE("Person[name=John Doe,age=33,smoker=false]"),
//     SIMPLE_STYLE("John Doe,33,false"),
//     NO_CLASS_NAME_STYLE("[name=John Doe,age=33,smoker=false]", " (since Commons Lang 3.4)"),
//     JSON_STYLE("{\"name\": \"John Doe\", \"age\": 33, \"smoker\": true}", " (since Commons Lang 3.4)");
// 
//     private static final String PREFIX = "Example:\n";
// 
//     /**
//      * tooltip to show in the toString dialog. Based on the examples in
//      * http://commons.apache.org/proper/commons-lang/apidocs/org/apache/commons/lang3/builder/ToStringStyle.html
//      */
//     private final String toolTip;
// 
//     /**
//      * Potential suffix to display in the to string generation dialog style list.
//      */
//     private final String displaySuffix;
// 
//     private CommonsLangToStringStyle(String toolTip) {
//         this.toolTip = toolTip;
//         this.displaySuffix = "";
//     }
// 
//     private CommonsLangToStringStyle(String toolTip, String displaySuffix) {
//         this.toolTip = toolTip;
//         this.displaySuffix = displaySuffix;
//     }
// 
//     public String getFullStyle() {
//         return CommonsLangMethodContentLibraries.TO_STRING_STYLE + CommonsLangMethodContentLibraries.DOT_STRING
//                 + name();
//     }
// 
//     public String getFullLibraryString(StrategyIdentifier strategyIdentifier) {
//         if (MethodContentStrategyIdentifier.USE_COMMONS_LANG.equals(strategyIdentifier)) {
//             return CommonsLangMethodContentLibraries.COMMONS_LANG_PREFIX
//                     + CommonsLangMethodContentLibraries.BUILDER_STRING + getFullStyle();
//         }
//         if (MethodContentStrategyIdentifier.USE_COMMONS_LANG3.equals(strategyIdentifier)) {
//             return CommonsLangMethodContentLibraries.COMMONS_LANG_PREFIX
//                     + CommonsLangMethodContentLibraries.COMMONS_LANG3_ADDON
//                     + CommonsLangMethodContentLibraries.BUILDER_STRING + getFullStyle();
//         }
//         throw new UnsupportedOperationException(
//                 "The full library string for the toString style is not currently handled for strategy '"
//                         + strategyIdentifier + "' ");
//     }
// 
//     public static CommonsLangToStringStyle getToStringStyle(String fullLibraryString) {
//         EnumSet<CommonsLangToStringStyle> enumSet = EnumSet.allOf(CommonsLangToStringStyle.class);
//         for (CommonsLangToStringStyle style : enumSet) {
//             if (fullLibraryString.contains(style.name())) {
//                 return style;
//             }
//         }
//         return NO_STYLE;
//     }
// 
//     public String getToolTip() {
//         return PREFIX + toolTip;
//     }
// 
//     public String getDisplayableLibraryString() {
//         return getFullStyle() + this.displaySuffix;
//     }
// 
// }


// Path: org.jenerate/src/java/org/jenerate/internal/domain/data/impl/ToStringGenerationDataImpl.java
import org.jenerate.internal.domain.data.ToStringGenerationData;
import org.jenerate.internal.strategy.method.content.impl.commonslang.CommonsLangToStringStyle;

package org.jenerate.internal.domain.data.impl;


/**
 * Specific implementation of the {@link ToStringGenerationData}
 * 
 * @author maudrain
 */
public class ToStringGenerationDataImpl extends AbstractMethodGenerationData implements ToStringGenerationData {

    private final CommonsLangToStringStyle toStringStyle;

    private ToStringGenerationDataImpl(Builder builder) {
        super(builder);
        this.toStringStyle = builder.builderToStringStyle;
    }

    @Override
    public CommonsLangToStringStyle getToStringStyle() {
        return toStringStyle;
    }

    public static class Builder extends AbstractMethodGenerationData.Builder<Builder> {


        private CommonsLangToStringStyle builderToStringStyle;
