Ignore:
Timestamp:
06/28/13 11:56:03 (11 years ago)
Author:
psniegowski
Message:

HIGHLIGHTS:

  • FramsClass? and contained Param are now immutable classes (like String),

which allows to refer to them concurrently without synchronization
(which for example in turn simplifies GUI management)

  • also make Path immutable (which was earlier only assumed)
  • add global cache for FramsClasses? created solely and automatically

on base of Java classes.

representations basing on given FramsClass?

  • above changes greatly improved GUI responsivness during browsing
  • furtherly improve Param class hierarchy
  • allow to inject actions on state changes into MultiParamLoader?
  • add more tests

CHANGELOG:

Add StatusListener? to MultiParamLoader?.

Minor refactorization in MultiParamLoader?.

First step with auto append.

Add SchemaTest?.

Improve Registry.

Clean up in Registry.

Work out Registry.

Use annotations for Param.

Fix ListChange?.

Improve fluent interface of the FramsClassBuilder?.

Done caching of ReflectionAccess?.Backend

Fix hashCode of Pair.

A step on a way to cache ReflectionAccess?.Backend

Make SimpleAbstractAccess?.framsClass a final field.

Add static cache for FramsClasses? based on java.

Only classes created strictly and automatically
based on java classes are using this cache.

Make all Params immutable.

Many improvement to make Param immutable.

Make PrimitiveParam? generic type.

Several changes to make Param immutable.

Make FramsClass? immutable.

Another improvement to Path immutability.

Several improvements to Path.

Improve PathTest?.

Configurarable MutabilityDetector?.

File:
1 edited

Legend:

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

    r86 r87  
    2424        private final static Logger log = Logger.getLogger(SimpleAbstractAccess.class.getName());
    2525
     26        protected final FramsClass framsClass;
     27
     28        /**
     29         * @param framsClass
     30         */
     31        public SimpleAbstractAccess(FramsClass framsClass) {
     32                this.framsClass = framsClass;
     33        }
     34
    2635        @Override
    2736        public final FramsClass getFramsClass() {
     
    2938        }
    3039
    31         public void setFramsClass(FramsClass framsClass) {
    32                 this.framsClass = framsClass;
    33         }
    3440        /**
    3541         * Simple String key, value class.
     
    5157        }
    5258
    53         protected FramsClass framsClass;
    5459
    5560        @Override
     
    141146        @Override
    142147        public void setMin(int i) {
    143                 PrimitiveParam entry = framsClass.getParamEntry(i, PrimitiveParam.class);
     148                PrimitiveParam<?> entry = framsClass.getParamEntry(i, PrimitiveParam.class);
    144149                if (entry == null) {
    145150                        return;
     
    160165        @Override
    161166        public void setMax(int i) {
    162                 PrimitiveParam entry = framsClass.getParamEntry(i, PrimitiveParam.class);
     167                PrimitiveParam<?> entry = framsClass.getParamEntry(i, PrimitiveParam.class);
    163168                if (entry == null) {
    164169                        return;
     
    188193                assert framsClass != null;
    189194                sink.print(framsClass.getId()).print(":").breakLine();
    190                 for (PrimitiveParam p : filterInstanceof(framsClass.getParamEntries(), PrimitiveParam.class)) {
     195                for (PrimitiveParam<?> p : filterInstanceof(framsClass.getParamEntries(), PrimitiveParam.class)) {
    191196                        Object value = get(p, Object.class);
    192197                        if (value == null) {
Note: See TracChangeset for help on using the changeset viewer.