Ignore:
Timestamp:
06/30/13 12:48:20 (11 years ago)
Author:
psniegowski
Message:

HIGHLIGHTS:

  • loading f0 schema with XmlLoader?
  • use XmlLoader? to load configuration
  • introduce unified fork-join model of various entities

(Instances, Connections, GUI Frames, etc.),
all those entities clean up gracefully on
shutdown, which may be initialized by user
or by some entity

  • basing on above, simplify several organizing classes

(Observer, main class)

(to host native frams server process from Java level)

CHANGELOG:
Remove redundant Observer class.

Clean up in AbstractJoinable?.

Update ExternalProcess? class to changes in joining model.

Another sweep through code with FindBugs?.

Find bug with not joining RemoteInstance?.

Joining almost works.

Much improved joining model.

More improvement to joining model.

Add logging messages around joinable operations.

Rename methods in AbstractJoinable?.

Improve Joinable.

Rewrite of entity structure.

More simplifications with entities.

Further improve joinables.

Let Frame compose from JFrame instead of inheriting.

Add join classes.

Improvements of closing.

Add Builder interface.

Add FramsServerTest?.xml

FramsServer? may be configured through xml.

Make Framsticks main class an Observer of Entities.

Make Observer a generic type.

Remove variables regarding to removed endpoint.

Simplify observer (remove endpoints).

More changes to Observer and Endpoint.

Minor improvements.

Add OutputListener? to ExternalProcess?.

Improve testing of ExternalProcess?.

Add ExternalProcess? runner.

Rename the Program class to Framsticks.

Migrate Program to use XmlLoader? configuration.

First steps with configuration using XmlLoader?.

Fix several bugs.

Move all f0 classes to apriopriate package.

XmlLoader? is able to load Schema.

XmlLoader? is loading classes and props.

Add GroupBuilder?.

File:
1 edited

Legend:

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

    r87 r88  
    2121import com.framsticks.parsers.FileSource;
    2222import com.framsticks.parsers.Loaders;
     23import com.framsticks.util.Builder;
     24import com.framsticks.util.FramsticksException;
    2325import com.framsticks.util.lang.Strings;
    2426
    2527@FramsClassAnnotation(id = "class", name = "class")
    26 public class FramsClassBuilder {
     28public class FramsClassBuilder implements Builder<FramsClass> {
    2729        private static final Logger log =
    2830                Logger.getLogger(FramsClassBuilder.class);
     
    163165        }
    164166
    165         public static Map<Class<?>, FramsClass> synchronizedCacheForBasedOnForJavaClass = Collections.synchronizedMap(new HashMap<Class<?>, FramsClass>());
     167        public static final Map<Class<?>, FramsClass> synchronizedCacheForBasedOnForJavaClass = Collections.synchronizedMap(new HashMap<Class<?>, FramsClass>());
    166168
    167169        public FramsClass forClass(Class<?> javaClass) throws ConstructionException {
     
    171173                }
    172174
    173                 log.info("building for class " + javaClass);
     175                log.debug("building for class " + javaClass);
    174176
    175177                FramsClassAnnotation fca = javaClass.getAnnotation(FramsClassAnnotation.class);
     
    184186
    185187                for (ParamCandidate pc : candidates.values()) {
    186                         param(Param.build().id(pc.getId()).name(pc.getName()).type(getParamTypeForNativeType(pc.getType())).flags(pc.getFlags()));
     188                        String type = getParamTypeForNativeType(pc.getType());
     189                        if (type == null) {
     190                                throw new FramsticksException().msg("failed to find type for param candidate").arg("candidate", pc);
     191                        }
     192                        param(Param.build().id(pc.getId()).name(pc.getName()).type(type).flags(pc.getFlags()));
    187193                }
    188194
     
    233239
    234240        public FramsClass finish() {
    235                 return new FramsClass(id, name, description, params, groups);
     241                return new FramsClass(this);
    236242        }
    237243
     
    244250        public FramsClassBuilder param(ParamBuilder builder) {
    245251                return append(builder.finish());
     252        }
     253
     254        @AutoAppendAnnotation
     255        public FramsClassBuilder group(GroupBuilder builder) {
     256                return group(builder.finish());
    246257        }
    247258
Note: See TracChangeset for help on using the changeset viewer.