From 1e67b454efd84a88877205917038da13a47a2f6b Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 9 Nov 2012 09:51:18 +0100 Subject: Create proper constructor for Schema. --- .../persistency/outcome/OutcomeValidator.java | 6 ++-- .../com/c2kernel/persistency/outcome/Schema.java | 15 +++++++++ .../java/com/c2kernel/utils/LocalObjectLoader.java | 36 ++++++++++------------ 3 files changed, 34 insertions(+), 23 deletions(-) (limited to 'src/main/java/com') diff --git a/src/main/java/com/c2kernel/persistency/outcome/OutcomeValidator.java b/src/main/java/com/c2kernel/persistency/outcome/OutcomeValidator.java index 73f5706..3355387 100644 --- a/src/main/java/com/c2kernel/persistency/outcome/OutcomeValidator.java +++ b/src/main/java/com/c2kernel/persistency/outcome/OutcomeValidator.java @@ -51,9 +51,9 @@ public class OutcomeValidator implements ErrorHandler, XMLErrorHandler { SymbolTable sym = new SymbolTable(); public static OutcomeValidator getValidator(Schema schema) throws InvalidDataException { - String schemaId = schema.docType+"_"+schema.docVersion; - - if (schemaId.equals("Schema_0")) + + if (schema.docType.equals("Schema") && + schema.docVersion==0) return schemaValid; return new OutcomeValidator(schema); diff --git a/src/main/java/com/c2kernel/persistency/outcome/Schema.java b/src/main/java/com/c2kernel/persistency/outcome/Schema.java index 73969f2..ee1797c 100644 --- a/src/main/java/com/c2kernel/persistency/outcome/Schema.java +++ b/src/main/java/com/c2kernel/persistency/outcome/Schema.java @@ -15,4 +15,19 @@ public class Schema { public int docVersion; public boolean breakApart; public String schema; + + /** + * @param docType + * @param docVersion + * @param breakApart + * @param schema + */ + public Schema(String docType, int docVersion, boolean breakApart, + String schema) { + super(); + this.docType = docType; + this.docVersion = docVersion; + this.breakApart = breakApart; + this.schema = schema; + } } diff --git a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java index 8a73e3c..6832eeb 100644 --- a/src/main/java/com/c2kernel/utils/LocalObjectLoader.java +++ b/src/main/java/com/c2kernel/utils/LocalObjectLoader.java @@ -37,29 +37,25 @@ public class LocalObjectLoader { static public Schema getSchema(String schemaName, int schemaVersion) throws ObjectNotFoundException { Logger.msg(5, "Loading schema "+schemaName+" v"+schemaVersion); - Schema thisSchema = new Schema(); - thisSchema.docType = schemaName; - thisSchema.docVersion = schemaVersion; + + String docType = schemaName; + int docVersion = schemaVersion; + String schemaData; // don't bother if this is the Schema schema - for bootstrap esp. - if (schemaName.equals("Schema") && schemaVersion == 0) { - thisSchema.breakApart = false; - thisSchema.schema=""; - return thisSchema; - } - - ItemProxy schema = loadLocalObjectDef("/desc/OutcomeDesc/", schemaName); - Viewpoint schemaView = (Viewpoint)schema.getObject(ClusterStorage.VIEWPOINT + "/Schema/" + schemaVersion); - try { - thisSchema.schema = schemaView.getOutcome().getData(); - } catch (ClusterStorageException ex) { - Logger.error(ex); - throw new ObjectNotFoundException("Problem loading schema "+schemaName+" v"+schemaVersion+": "+ex.getMessage(), ""); - } - String breakApart = schema.getProperty("BreakApart"); - thisSchema.breakApart = breakApart.equals("1"); + if (schemaName.equals("Schema") && schemaVersion == 0) + return new Schema(docType, docVersion, false, ""); - return thisSchema; + ItemProxy schema = loadLocalObjectDef("/desc/OutcomeDesc/", schemaName); + Viewpoint schemaView = (Viewpoint)schema.getObject(ClusterStorage.VIEWPOINT + "/Schema/" + schemaVersion); + try { + schemaData = schemaView.getOutcome().getData(); + } catch (ClusterStorageException ex) { + Logger.error(ex); + throw new ObjectNotFoundException("Problem loading schema "+schemaName+" v"+schemaVersion+": "+ex.getMessage(), ""); + } + String breakApart = schema.getProperty("BreakApart"); + return new Schema(docType, docVersion, breakApart.equals("1"), schemaData); } /** -- cgit v1.2.3