Ignore:
Timestamp:
06/24/13 13:38:40 (11 years ago)
Author:
psniegowski
Message:

HIGHLIGHTS:

  • upgrade to Java 7
    • use try-multi-catch clauses
    • use try-with-resources were appropriate
  • configure FindBugs? (use mvn site and then navigate in browser to the report)
    • remove most bugs found
  • parametrize Dispatching environment (Dispatcher, RunAt?) to enforce more control on the place of closures actual call

CHANGELOG:
Rework FavouritesXMLFactory.

FindBugs?. Thread start.

FindBugs?. Minor change.

FindBugs?. Iterate over entrySet.

FindBugs?. Various.

FindBug?.

FindBug?. Encoding.

FindBug?. Final fields.

FindBug?.

Remove synchronization bug in ClientConnection?.

Experiments with findbugs.

Finish parametrization.

Make RunAt? an abstract class.

More changes in parametrization.

More changes in parametrizing dispatching.

Several changes to parametrize tasks.

Rename Runnable to RunAt?.

Add specific framsticks Runnable.

Add JSR305 (annotations).

Add findbugs reporting.

More improvements to ParamBuilder? wording.

Make FramsClass? accept also ParamBuilder?.

Change wording of ParamBuilder?.

Change wording of Request creation.

Use Java 7 exception catch syntax.

Add ScopeEnd? class.

Upgrade to Java 7.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • java/main/src/main/java/com/framsticks/params/ParamBuilder.java

    r84 r85  
    5555        private PrimitiveParam primitiveParam;
    5656
     57        ParamBuilder() {
     58        }
     59
    5760        /**
    5861         * Build Param based on provided data.
     
    6265         *             when Param getType is not defined
    6366         */
    64         public Param build()  {
     67        public Param finish()  {
    6568                assert param != null;
    6669                param.id = id;
     
    7376        }
    7477
    75         public ParamBuilder setId(String id) {
     78        public ParamBuilder id(String id) {
    7679                this.id = id;
    7780                return this;
     
    8790        }
    8891
    89         public <T extends Param> ParamBuilder setType(Class<T> type) {
     92        public <T extends Param> ParamBuilder type(Class<T> type) {
    9093                try {
    9194                        return internalSetType(type, type.newInstance());
    92                 } catch (InstantiationException e) {
     95                } catch (InstantiationException | IllegalAccessException e) {
    9396                        e.printStackTrace();
    94                 } catch (IllegalAccessException e) {
    95                         e.printStackTrace();
    96                 }
    97                 return this;
    98         }
    99 
    100         public <T extends Param> ParamBuilder setType(T param) {
     97                }
     98                return this;
     99        }
     100
     101        public <T extends Param> ParamBuilder type(T param) {
    101102                return internalSetType(param.getClass(), param);
    102103        }
     
    108109        }
    109110
    110         public ParamBuilder setGroup(Integer group) {
     111        public ParamBuilder group(Integer group) {
    111112                this.group = group;
    112113                return this;
    113114        }
    114115
    115         public ParamBuilder setFlags(Integer flags) {
     116        public ParamBuilder flags(Integer flags) {
    116117                this.flags = flags;
    117118                return this;
    118119        }
    119120
    120         public ParamBuilder setName(String name) {
     121        public ParamBuilder name(String name) {
    121122                this.name = name;
    122123                return this;
     
    142143        }
    143144
    144         public ParamBuilder setType(String type) {
     145        public ParamBuilder type(String type) {
    145146
    146147                log.trace("parsing type: " + type);
     
    153154                switch (first.charAt(0)) {
    154155                        case 'o': {
    155                                 setType(new ObjectParam(second != null ? second : first.substring(1)));
     156                                type(new ObjectParam(second != null ? second : first.substring(1)));
    156157                                break;
    157158                        }
     
    164165                                        log.error("invalid procedure signature '" + signature + "': " + e);
    165166                                }
    166                                 setType(procedureParam);
     167                                type(procedureParam);
    167168                                break;
    168169                        }
     
    171172                                int tildeIndex = type.indexOf("~");
    172173                                if (tildeIndex != -1) {
    173                                         setType(new EnumParam(new ArrayList<String>(Arrays.asList(type.substring(tildeIndex + 1).split("~")))));
     174                                        type(new EnumParam(new ArrayList<String>(Arrays.asList(type.substring(tildeIndex + 1).split("~")))));
    174175                                } else {
    175176                                        if (first.length() >= 2) {
    176                                 switch (first.charAt(1)) {
     177                                                switch (first.charAt(1)) {
    177178                                                        case 'b': {
    178                                                                 setType(BinaryParam.class);
     179                                                                type(BinaryParam.class);
    179180                                                                break;
    180181                                                        }
    181182                                                        case 'c': {
    182                                                                 setType(ColorParam.class);
     183                                                                type(ColorParam.class);
    183184                                                                break;
     185                                                        }
     186                                                        default: {
     187                                                                log.error("unknown type: " + first);
     188                                                                return this;
    184189                                                        }
    185190                                                }
    186191                                        }
    187192                                        if ("0".equals(second) && "1".equals(third)) {
    188                                                 setType(BooleanParam.class);
     193                                                type(BooleanParam.class);
    189194                                        }
    190195                                        if (param == null) {
    191                                                 setType(DecimalParam.class);
     196                                                type(DecimalParam.class);
    192197                                        }
    193198                                }
     
    198203                        }
    199204                        case 'f': {
    200                                 setType(FloatParam.class);
     205                                type(FloatParam.class);
    201206                                parseMinMaxDefNumber(Double.class, second, third);
    202207                                break;
    203208                        }
    204209                        case 'x': {
    205                                 setType(UniversalParam.class);
     210                                type(UniversalParam.class);
    206211                                break;
    207212                        }
    208213                        case 's': {
    209                                 setType(StringParam.class);
    210                                 setMin(second);
    211                                 setMax(third);
     214                                type(StringParam.class);
     215                                min(second);
     216                                max(third);
    212217                                break;
    213218                        }
    214219                        case 'e': {
    215                                 setType(EventParam.class);
     220                                type(EventParam.class);
    216221                                break;
    217222                        }
    218223                        case 'l': {
    219                                 setType(third != null ? new UniqueListParam(second, third) : new ArrayListParam(second));
    220                                 break;
    221                         }
    222 
    223                 }
    224                 return this;
    225         }
    226 
    227         public ParamBuilder setHelp(String help) {
     224                                type(third != null ? new UniqueListParam(second, third) : new ArrayListParam(second));
     225                                break;
     226                        }
     227                        default:{
     228                                log.error("unknown type: " + first);
     229                                return this;
     230                        }
     231                }
     232                return this;
     233        }
     234
     235        public ParamBuilder help(String help) {
    228236                this.help = help;
    229237                return this;
     
    237245        }
    238246
    239         public <T> ParamBuilder setMin(T min) {
     247        public <T> ParamBuilder min(T min) {
    240248                if (primitiveParam != null) {
    241249                        this.primitiveParam.min = min;
     
    244252        }
    245253
    246         public <T> ParamBuilder setMax(T max) {
     254        public <T> ParamBuilder max(T max) {
    247255                if (primitiveParam != null) {
    248256                        this.primitiveParam.max = max;
     
    251259        }
    252260
    253         public <T> ParamBuilder setDef(T def) {
     261        public <T> ParamBuilder def(T def) {
    254262                if (def != null && primitiveParam != null) {
    255263                        this.primitiveParam.def = def;
     
    277285
    278286                try {
    279                         setId(paramEntryValues[0]);
    280                         setGroup(Integer.valueOf(paramEntryValues[1]));
    281                         setFlags(Flags.read(paramEntryValues[2]));
    282                         setName(paramEntryValues[3]);
    283                         setType(paramEntryValues[4]);
    284                         setHelp(paramEntryValues[6]);
     287                        id(paramEntryValues[0]);
     288                        group(Integer.valueOf(paramEntryValues[1]));
     289                        flags(Flags.read(paramEntryValues[2]));
     290                        name(paramEntryValues[3]);
     291                        type(paramEntryValues[4]);
     292                        help(paramEntryValues[6]);
    285293                } catch (IndexOutOfBoundsException e) {
    286294                        /** everything is ok, parameters have just finished*/
     
    290298                        return null;
    291299                }
    292                 return build();
     300                return finish();
    293301        }
    294302
    295303        public void setField(String key, String value) {
    296                 if (key.equals(ID_FIELD)) {
    297                         setId(value);
    298                 } else if (key.equals(NAME_FIELD)) {
    299                         setName(value);
    300                 } else if (key.equals(TYPE_FIELD)) {
    301                         setType(value);
    302                 } else if (key.equals(FLAGS_FIELD)) {
    303                         setFlags(Flags.read(value));
    304                 } else if (key.equals(HELP_FIELD)) {
    305                         setHelp(value);
    306                 } else if (key.equals(GROUP_FIELD)) {
    307                         setGroup(Integer.valueOf(value));
     304                switch (key) {
     305                        case ID_FIELD:
     306                                id(value);
     307                                break;
     308                        case NAME_FIELD:
     309                                name(value);
     310                                break;
     311                        case TYPE_FIELD:
     312                                type(value);
     313                                break;
     314                        case FLAGS_FIELD:
     315                                flags(Flags.read(value));
     316                                break;
     317                        case HELP_FIELD:
     318                                help(value);
     319                                break;
     320                        case GROUP_FIELD:
     321                                group(Integer.valueOf(value));
     322                                break;
     323                        default:
     324                                log.error("unknown field for Param: " + key);
     325                                break;
    308326                }
    309327        }
     
    312330        public static FramsClass getFramsClass() {
    313331                return new FramsClass("prop", "prop", null)
    314                                 .append(new ParamBuilder().setId("name").setName("Name").setType(StringParam.class).build())
    315                                 .append(new ParamBuilder().setId("id").setName("Id").setType(StringParam.class).build())
    316                                 .append(new ParamBuilder().setId("type").setName("Type").setType(StringParam.class).build())
    317                                 .append(new ParamBuilder().setId("help").setName("Help").setType(StringParam.class).build())
    318                                 .append(new ParamBuilder().setId("flags").setName("Flags").setType(DecimalParam.class).build());
     332                        .append(Param.build().id("name").name("Name").type(StringParam.class))
     333                        .append(Param.build().id("id").name("Id").type(StringParam.class))
     334                        .append(Param.build().id("type").name("Type").type(StringParam.class))
     335                        .append(Param.build().id("help").name("Help").type(StringParam.class))
     336                        .append(Param.build().id("group").name("Group").type(DecimalParam.class))
     337                        .append(Param.build().id("flags").name("Flags").type(DecimalParam.class));
    319338        }
    320339
Note: See TracChangeset for help on using the changeset viewer.