Revision 45789

View differences:

trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.api/src/main/java/org/gvsig/expressionevaluator/ExpressionUtils.java
199 199
    }
200 200
    
201 201
    public static boolean isDynamicText(String source) {
202
        if( !source.contains(DYNAMICTEXT_STARTTAG) ) {
202
        if( StringUtils.isBlank(source) || !source.contains(DYNAMICTEXT_STARTTAG) ) {
203 203
          return false;
204 204
        }
205 205
        String[] sources = StringUtils.substringsBetween(source, DYNAMICTEXT_STARTTAG, DYNAMICTEXT_ENDTAG);
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/DefaultExpression.java
15 15
import org.gvsig.expressionevaluator.Optimizer;
16 16
import org.gvsig.expressionevaluator.SymbolTable;
17 17
import org.gvsig.json.Json;
18
import org.gvsig.json.JsonManager;
18 19
import org.gvsig.json.JsonObjectBuilder;
20
import org.gvsig.json.SupportToJson;
19 21
import org.gvsig.tools.ToolsLocator;
20 22
import org.gvsig.tools.dynobject.DynStruct;
21 23
import org.gvsig.tools.evaluator.Evaluator;
......
285 287
        ExpressionEvaluator evaluator = this.manager.createExpressionEvaluator(this);
286 288
        return evaluator;
287 289
    }
290
    
291
    public static void selfRegister() {
292
        Json.registerSerializer(new TheJsonSerializer());
293
    }
294
    
295
    private static class TheJsonSerializer implements JsonManager.JsonSerializer {
296
        
297
        public TheJsonSerializer() {            
298
        }
299

  
300
        @Override
301
        public Class getObjectClass() {
302
            return DefaultExpression.class;
303
        }
304

  
305
        @Override
306
        public Object toObject(JsonObject json) {
307
            DefaultExpression o = new DefaultExpression();
308
            o.fromJson(json);
309
            return o;
310
        }
311

  
312
        @Override
313
        public JsonObjectBuilder toJsonBuilder(Object value) {
314
            return ((SupportToJson)value).toJsonBuilder();
315
        }
316
        
317
    }
318

  
319

  
320

  
288 321
}
trunk/org.gvsig.desktop/org.gvsig.desktop.library/org.gvsig.expressionevaluator/org.gvsig.expressionevaluator.lib/org.gvsig.expressionevaluator.lib.impl/src/main/java/org/gvsig/expressionevaluator/impl/ExpressionEvaluatorImplLibrary.java
80 80
        ReprSQLDate.selfRegister();
81 81
        ReprSQLTime.selfRegister();
82 82
        ReprSQLTimestamp.selfRegister();
83
        DefaultExpression.selfRegister();
83 84
        
84 85
    }
85 86
}
trunk/org.gvsig.desktop/org.gvsig.desktop.compat.cdc/org.gvsig.fmap.dal/org.gvsig.fmap.dal.impl/src/main/java/org/gvsig/fmap/dal/feature/impl/DefaultFeatureAttributeDescriptor.java
2210 2210
            builder.add("fk_closedlist", this.getForeingKey().isClosedList());
2211 2211
        }
2212 2212
        builder.add("availableValuesExpression", this.availableValuesExpression);
2213
        builder.add("defaultValue", Objects.toString(this.defaultValue, ""));
2213
        builder.add("defaultValue", Objects.toString(this.defaultValue, null));
2214 2214
        builder.add("dataProfile", this.getDataProfileName());
2215 2215
        builder.add("tags", tags);
2216 2216
        builder.add("availableValues", availableValues);
......
2256 2256
        this.dataProfile = json.getString("dataProfile", null);
2257 2257
        try {
2258 2258
            this.defaultValue = json.getString("defaultValue", null);
2259
            if(!ExpressionUtils.isDynamicText((String) this.defaultValue)){
2259
            if(!(this.defaultValue instanceof String && ExpressionUtils.isDynamicText((String) this.defaultValue))){
2260 2260
                this.defaultValue = this.coerce(this.defaultValue);
2261 2261
            }
2262 2262
        } catch (Exception ex) {

Also available in: Unified diff