org.simantics.db;bundle-version="1.1.0",
org.simantics.db.common;bundle-version="1.1.0",
org.simantics.db.layer0;bundle-version="1.1.0",
- org.simantics.message;bundle-version="1.1.0"
-Export-Package: org.simantics.xml.sax.base
+ org.simantics.message;bundle-version="1.1.0",
+ org.simantics.xml.sax.ontology;bundle-version="1.0.0"
+Export-Package: org.simantics.xml.sax.base,
+ org.simantics.xml.sax.base.datatypes.adapter,
+ org.simantics.xml.sax.base.datatypes.adt,
+ org.simantics.xml.sax.base.datatypes.literal
--- /dev/null
+<?xml version="1.0" encoding="UTF-8"?>\r<!--\r
+ Copyright (c) 2007, 2010 Association for Decentralized Information Management\r
+ in Industry THTH ry.\r
+ All rights reserved. This program and the accompanying materials\r
+ are made available under the terms of the Eclipse Public License v1.0\r
+ which accompanies this distribution, and is available at\r
+ http://www.eclipse.org/legal/epl-v10.html\r
+ \r
+ Contributors:\r
+ VTT Technical Research Centre of Finland - initial API and implementation\r
+ -->\r
+
+<adapters>\r
+\r <target interface="org.simantics.xml.sax.base.datatypes.adt.DateTime">\r <adapter uri="http://www.simantics.org/XML-0.0/DateTime"\r contextClass="org.simantics.db.RelationContext" adapterClass="org.simantics.xml.sax.base.datatypes.adapter.DateTimeRelatedAdapter" />\r </target>\r <target interface="org.simantics.xml.sax.base.datatypes.adt.Date">\r <adapter uri="http://www.simantics.org/XML-0.0/Date"\r contextClass="org.simantics.db.RelationContext" adapterClass="org.simantics.xml.sax.base.datatypes.adapter.DateRelatedAdapter" />\r </target>\r <target interface="org.simantics.xml.sax.base.datatypes.adt.Time">\r <adapter uri="http://www.simantics.org/XML-0.0/Time"\r contextClass="org.simantics.db.RelationContext" adapterClass="org.simantics.xml.sax.base.datatypes.adapter.TimeRelatedAdapter" />\r </target>\r\r
+</adapters>
\ No newline at end of file
source.. = src/\r
output.. = bin/\r
bin.includes = META-INF/,\\r
- .\r
+ .,\\r
+ adapters.xml\r
\r
@Override\r
public void perform(WriteGraph graph) throws DatabaseException {\r
+ Layer0Utils.addCommentMetadata(graph, "Import file " + file.getName());\r
+ graph.markUndoPoint();\r
result = doImport(graph);\r
}\r
\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.adapter;\r
+\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.RelationContext;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.common.adaption.SimpleContextualAdapter;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.xml.sax.base.datatypes.adt.Date;\r
+\r
+public class DateRelatedAdapter extends SimpleContextualAdapter<Date, RelationContext> {\r
+\r
+ @Override\r
+ public Date adapt(ReadGraph g, Resource source, RelationContext context) throws DatabaseException {\r
+ return g.getValue(context.getStatement().getObject(), org.simantics.xml.sax.base.datatypes.literal.Date.BINDING);\r
+ }\r
+}\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.adapter;\r
+\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.RelationContext;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.common.adaption.SimpleContextualAdapter;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.xml.sax.base.datatypes.adt.DateTime;\r
+\r
+public class DateTimeRelatedAdapter extends SimpleContextualAdapter<DateTime, RelationContext> {\r
+\r
+ @Override\r
+ public DateTime adapt(ReadGraph g, Resource source, RelationContext context) throws DatabaseException {\r
+ return g.getValue(context.getStatement().getObject(), org.simantics.xml.sax.base.datatypes.literal.DateTime.BINDING);\r
+ }\r
+}\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.adapter;\r
+\r
+import org.simantics.db.ReadGraph;\r
+import org.simantics.db.RelationContext;\r
+import org.simantics.db.Resource;\r
+import org.simantics.db.common.adaption.SimpleContextualAdapter;\r
+import org.simantics.db.exception.DatabaseException;\r
+import org.simantics.xml.sax.base.datatypes.adt.Time;\r
+\r
+public class TimeRelatedAdapter extends SimpleContextualAdapter<Time, RelationContext> {\r
+\r
+ \r
+ @Override\r
+ public Time adapt(ReadGraph g, Resource source, RelationContext context) throws DatabaseException {\r
+ return g.getValue(context.getStatement().getObject(), org.simantics.xml.sax.base.datatypes.literal.Time.BINDING);\r
+ }\r
+}\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.adt;\r
+\r
+public interface Date {\r
+ \r
+ public java.util.Date getJavaDate();\r
+ \r
+ public int getYear();\r
+ public int getMonth();\r
+ public int getDate();\r
+ public int getTimezoneOffset();\r
+ \r
+ public int compare(Date date);\r
+ \r
+}\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.adt;\r
+\r
+import java.util.Date;\r
+\r
+public interface DateTime {\r
+ \r
+ public Date getJavaDate();\r
+ \r
+ public int getYear();\r
+ public int getMonth();\r
+ public int getDate();\r
+ public int getHours();\r
+ public int getMinutes();\r
+ public int getSeconds();\r
+ public int getTimezoneOffset();\r
+ \r
+ public int compare(DateTime dateTime);\r
+ \r
+}\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.adt;\r
+\r
+import java.util.Date;\r
+\r
+public interface Time {\r
+ \r
+ public Date getJavaDate();\r
+ \r
+ public int getHours();\r
+ public int getMinutes();\r
+ public int getSeconds();\r
+ public int getTimezoneOffset();\r
+ \r
+ public int compare(Time time);\r
+ \r
+}\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.literal;\r
+\r
+import java.text.ParseException;\r
+import java.text.SimpleDateFormat;\r
+import java.util.Calendar;\r
+import java.util.Locale;\r
+import java.util.TimeZone;\r
+\r
+import org.simantics.databoard.Bindings;\r
+import org.simantics.databoard.binding.Binding;\r
+import org.simantics.databoard.util.Bean;\r
+\r
+public class Date extends Bean implements org.simantics.xml.sax.base.datatypes.adt.Date {\r
+\r
+ public static final Binding BINDING = Bindings.getBindingUnchecked(Date.class);\r
+\r
+ public int year;\r
+ public byte month;\r
+ public byte day;\r
+ public int offset;\r
+ \r
+ public Date(){\r
+ super(BINDING);\r
+ }\r
+\r
+ public Date(int year, int month, int day) {\r
+ this(year,month,day, java.lang.Integer.MIN_VALUE);\r
+ }\r
+ \r
+ public Date(int year, int month, int day, int offset) {\r
+ super(BINDING);\r
+ if (month <= 0 || month > 12) throw new IllegalArgumentException("Month must be between 1 - 12, got " + month);\r
+ if (day <= 0 || day > 31) throw new IllegalArgumentException("Day must be between 1 - 31, got " + day);\r
+ this.year = year;\r
+ this.month = (byte)month;\r
+ this.day = (byte)day;\r
+ this.offset = offset;\r
+ }\r
+\r
+ @Override\r
+ public int getYear() {\r
+ return year;\r
+ }\r
+\r
+ @Override\r
+ public int getMonth() {\r
+ return month;\r
+ }\r
+\r
+ @Override\r
+ public int getDate() {\r
+ return day;\r
+ }\r
+\r
+ @Override\r
+ public int getTimezoneOffset() {\r
+ return offset;\r
+ }\r
+\r
+ @Override\r
+ public java.util.Date getJavaDate() {\r
+ Calendar c = Calendar.getInstance();\r
+ c.set(year, month, day);\r
+ if (offset != Integer.MIN_VALUE) {\r
+ c.setTimeZone(TimeZone.getTimeZone(TimeZone.getAvailableIDs(offset*60*1000)[0]));\r
+ }\r
+ return c.getTime();\r
+ }\r
+ \r
+ @Override\r
+ public int compare(org.simantics.xml.sax.base.datatypes.adt.Date o) {\r
+ if (getYear() != o.getYear())\r
+ return getYear() - o.getYear();\r
+ if (getMonth() != o.getMonth())\r
+ return getMonth() - o.getMonth();\r
+ if (getDate() != o.getDate())\r
+ return getDate() - o.getDate();\r
+ return 0;\r
+ }\r
+ \r
+ public static Date parseDate(String dateString) {\r
+ String[] formats = new String[]{"yyyy-MM-ddXXX", "yyyy-MM-dd"};\r
+ boolean[] timezone = new boolean[]{true, false};\r
+ for (int i = 0; i< formats.length; i++) {\r
+ String format = formats[i];\r
+ try {\r
+ SimpleDateFormat dateFormat = new SimpleDateFormat(format, Locale.ROOT);\r
+ java.util.Date n = dateFormat.parse(dateString);\r
+ if (timezone[i]) {\r
+ return new Date(n.getYear()+1900, n.getMonth()+1, n.getDate(), n.getTimezoneOffset());\r
+ }\r
+ return new Date(n.getYear()+1900, n.getMonth()+1, n.getDate());\r
+ } catch (ParseException e) {\r
+ \r
+ }\r
+ }\r
+\r
+ throw new IllegalArgumentException("Time is not in proper format " + dateString);\r
+ \r
+ }\r
+ \r
+ \r
+}\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.literal;\r
+\r
+import java.text.ParseException;\r
+import java.text.SimpleDateFormat;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.TimeZone;\r
+\r
+import org.simantics.databoard.Bindings;\r
+import org.simantics.databoard.binding.Binding;\r
+import org.simantics.databoard.util.Bean;\r
+\r
+public class DateTime extends Bean implements org.simantics.xml.sax.base.datatypes.adt.DateTime {\r
+\r
+ public static final Binding BINDING = Bindings.getBindingUnchecked(DateTime.class);\r
+\r
+ public int year;\r
+ public byte month;\r
+ public byte day;\r
+ public byte hours;\r
+ public byte minutes;\r
+ public byte seconds;\r
+ public int offset;\r
+ \r
+ public DateTime(){\r
+ super(BINDING);\r
+ }\r
+\r
+ public DateTime(int year, int month, int day, int hours, int minutes, int seconds) {\r
+ this(year, month, day, hours, minutes, seconds, java.lang.Integer.MIN_VALUE);\r
+ }\r
+ \r
+ public DateTime(int year, int month, int day, int hours, int minutes, int seconds, int offset) {\r
+ super(BINDING);\r
+ if (month <= 0 || month > 12) throw new IllegalArgumentException("Month must be between 1 - 12, got " + month);\r
+ if (day <= 0 || day > 31) throw new IllegalArgumentException("Day must be between 1 - 31, got " + day);\r
+ if (hours < 0 || hours > 23) throw new IllegalArgumentException("Hours must be between 0 - 23, got " + hours);\r
+ if (minutes < 0 || minutes > 59) throw new IllegalArgumentException("Minutes must be between 0 - 59, got " + minutes);\r
+ if (seconds < 0 || seconds > 59) throw new IllegalArgumentException("Seconds must be between 0 - 59, got " + seconds);\r
+ this.year = year;\r
+ this.month = (byte)month;\r
+ this.day = (byte)day;\r
+ this.hours = (byte)hours;\r
+ this.minutes = (byte)minutes;\r
+ this.seconds = (byte)seconds;\r
+ this.offset = offset;\r
+ }\r
+\r
+ @Override\r
+ public int getYear() {\r
+ return year;\r
+ }\r
+\r
+ @Override\r
+ public int getMonth() {\r
+ return month;\r
+ }\r
+\r
+ @Override\r
+ public int getDate() {\r
+ return day;\r
+ }\r
+\r
+ @Override\r
+ public int getHours() {\r
+ return hours;\r
+ }\r
+\r
+ @Override\r
+ public int getMinutes() {\r
+ return minutes;\r
+ }\r
+\r
+ @Override\r
+ public int getSeconds() {\r
+ return seconds;\r
+ }\r
+\r
+ @Override\r
+ public int getTimezoneOffset() {\r
+ return offset;\r
+ }\r
+\r
+ @Override\r
+ public Date getJavaDate() {\r
+ Calendar c = Calendar.getInstance();\r
+ c.set(year, month, day, hours, minutes, seconds);\r
+ if (offset != Integer.MIN_VALUE) {\r
+ c.setTimeZone(TimeZone.getTimeZone(TimeZone.getAvailableIDs(offset*60*1000)[0]));\r
+ }\r
+ return c.getTime();\r
+ }\r
+ \r
+ @Override\r
+ public int compare(org.simantics.xml.sax.base.datatypes.adt.DateTime o) {\r
+ // FIXME: take account time offset \r
+ if (getYear() != o.getYear())\r
+ return getYear() - o.getYear();\r
+ if (getMonth() != o.getMonth())\r
+ return getMonth() - o.getMonth();\r
+ if (getDate() != o.getDate())\r
+ return getDate() - o.getDate();\r
+ if (getHours() != o.getHours())\r
+ return getHours() - o.getHours();\r
+ if (getMinutes() != o.getMinutes())\r
+ return getMinutes() - o.getMinutes();\r
+ if (getSeconds() != o.getSeconds())\r
+ return getSeconds() - o.getSeconds();\r
+ return 0;\r
+ }\r
+ \r
+ public static DateTime parseDateTime(String dateString) {\r
+ // FIXME: XML specification allows any number of second decimals!\r
+ // FIXME: endOfDayFrag handling is missing.\r
+ String[] formats = new String[]{"yyyy-MM-dd'T'HH:mm:ssXXX", "yyyy-MM-dd'T'HH:mm:ssSSSSSSSXXX","yyyy-MM-dd'T'HH:mm:ss", "yyyy-MM-dd'T'HH:mm:ssSSSSSSS"};\r
+ boolean[] timezone = new boolean[]{true, true,false,false};\r
+ for (int i = 0; i< formats.length; i++) {\r
+ String format = formats[i];\r
+ try {\r
+ SimpleDateFormat dateFormat = new SimpleDateFormat(format);\r
+ java.util.Date n = dateFormat.parse(dateString);\r
+ if (timezone[i]) {\r
+ return new DateTime(n.getYear()+1900, n.getMonth()+1, n.getDate(), n.getHours(),n.getMinutes(), n.getSeconds(), n.getTimezoneOffset());\r
+ }\r
+ return new DateTime(n.getYear()+1900, n.getMonth()+1, n.getDate(), n.getHours(),n.getMinutes(), n.getSeconds());\r
+ } catch (ParseException e) {\r
+ \r
+ }\r
+ }\r
+\r
+ throw new IllegalArgumentException("Time is not in proper format " + dateString);\r
+ }\r
+\r
+}\r
--- /dev/null
+package org.simantics.xml.sax.base.datatypes.literal;\r
+\r
+import java.text.ParseException;\r
+import java.text.SimpleDateFormat;\r
+import java.util.Calendar;\r
+import java.util.Date;\r
+import java.util.TimeZone;\r
+\r
+import org.simantics.databoard.Bindings;\r
+import org.simantics.databoard.binding.Binding;\r
+import org.simantics.databoard.util.Bean;\r
+\r
+public class Time extends Bean implements org.simantics.xml.sax.base.datatypes.adt.Time {\r
+\r
+ public static final Binding BINDING = Bindings.getBindingUnchecked(Time.class);\r
+\r
+ public byte hours;\r
+ public byte minutes;\r
+ public byte seconds;\r
+ public int offset;\r
+ \r
+ \r
+ public Time(){\r
+ super(BINDING);\r
+ }\r
+\r
+ public Time(int hours, int minutes, int seconds) {\r
+ this(hours,minutes,seconds, java.lang.Integer.MIN_VALUE);\r
+ }\r
+ \r
+ public Time(int hours, int minutes, int seconds, int offset) {\r
+ super(BINDING);\r
+ if (hours < 0 || hours > 23) throw new IllegalArgumentException("Hours must be between 0 - 23, got " + hours);\r
+ if (minutes < 0 || minutes > 59) throw new IllegalArgumentException("Minutes must be between 0 - 59, got " + minutes);\r
+ if (seconds < 0 || seconds > 59) throw new IllegalArgumentException("Seconds must be between 0 - 59, got " + seconds);\r
+ this.hours = (byte)hours;\r
+ this.minutes = (byte)minutes;\r
+ this.seconds = (byte)seconds;\r
+ this.offset = offset;\r
+ }\r
+\r
+ @Override\r
+ public int getHours() {\r
+ return hours;\r
+ }\r
+\r
+ @Override\r
+ public int getMinutes() {\r
+ return minutes;\r
+ }\r
+\r
+ @Override\r
+ public int getSeconds() {\r
+ return seconds;\r
+ }\r
+\r
+ @Override\r
+ public int getTimezoneOffset() {\r
+ return offset;\r
+ }\r
+\r
+ @Override\r
+ public Date getJavaDate() {\r
+ Calendar c = Calendar.getInstance();\r
+ c.set(Calendar.HOUR_OF_DAY, hours);\r
+ c.set(Calendar.MINUTE, minutes);\r
+ c.set(Calendar.SECOND, seconds);\r
+ if (offset != Integer.MIN_VALUE) {\r
+ c.setTimeZone(TimeZone.getTimeZone(TimeZone.getAvailableIDs(offset*60*1000)[0]));\r
+ }\r
+ return c.getTime();\r
+ }\r
+ \r
+ @Override\r
+ public int compare(org.simantics.xml.sax.base.datatypes.adt.Time o) {\r
+ // FIXME: take account time offset \r
+ if (getHours() != o.getHours())\r
+ return getHours() - o.getHours();\r
+ if (getMinutes() != o.getMinutes())\r
+ return getMinutes() - o.getMinutes();\r
+ if (getSeconds() != o.getSeconds())\r
+ return getSeconds() - o.getSeconds();\r
+ return 0;\r
+ }\r
+ \r
+ public static Time parseTime(String timeString) {\r
+ // FIXME: XML specification allows any number of second decimals!\r
+ String[] formats = new String[]{"HH:mm:ss.SSSSSSSXXX","HH:mm:ss.SSSSSSS","HH:mm:ss.SSXXX","HH:mm:ss.SS","HH:mm:ssXXX", "HH:mm:ss"};\r
+ boolean[] timezone = new boolean[]{true, false,true,false,true,false};\r
+ for (int i = 0; i< formats.length; i++) {\r
+ String format = formats[i];\r
+ try {\r
+ SimpleDateFormat dateFormat = new SimpleDateFormat(format);\r
+ Date n = dateFormat.parse(timeString);\r
+ if (timezone[i]) {\r
+ return new Time(n.getHours(), n.getMinutes(), n.getSeconds(), n.getTimezoneOffset());\r
+ }\r
+ return new Time(n.getHours(), n.getMinutes(), n.getSeconds());\r
+ } catch (ParseException e) {\r
+ \r
+ }\r
+ }\r
+\r
+ throw new IllegalArgumentException("Time is not in proper format " + timeString);\r
+ \r
+ }\r
+\r
+}\r
source.. = src/\r
output.. = bin/\r
bin.includes = META-INF/,\\r
- .\r
+ .,\\r
+ graph.tg\r
return writer;\r
}\r
\r
- protected String getValueGetter(String binding,String name) {\r
+// protected String getValueGetter(String binding,String name) {\r
+// if (binding == null)\r
+// return name+".getValue()";\r
+// if ("STRING".equals(binding))\r
+// return name+".getValue()";\r
+// if ("BOOLEAN".equals(binding))\r
+// return "Boolean.parseBoolean("+name+".getValue())";\r
+// if ("INTEGER".equals(binding))\r
+// return "Integer.parseInt("+name+".getValue())";\r
+// if ("DOUBLE".equals(binding))\r
+// return "Double.parseDouble("+name+".getValue())";\r
+// if ("FLOAT".equals(binding))\r
+// return "Float.parseFloat("+name+".getValue())";\r
+// return name+".getValue()";\r
+// }\r
+// protected String getValueGetter(String binding) {\r
+// if (binding == null)\r
+// return "value";\r
+// if ("STRING".equals(binding))\r
+// return "value";\r
+// if ("BOOLEAN".equals(binding))\r
+// return "Boolean.parseBoolean(value)";\r
+// if ("INTEGER".equals(binding))\r
+// return "Integer.parseInt(value)";\r
+// if ("DOUBLE".equals(binding))\r
+// return "Double.parseDouble(value)";\r
+// if ("FLOAT".equals(binding))\r
+// return "Float.parseFloat(value)";\r
+// return "value";\r
+// }\r
+ protected String getValueGetter(TypeEntry binding,String name) {\r
if (binding == null)\r
return name+".getValue()";\r
- if ("STRING".equals(binding))\r
- return name+".getValue()";\r
- if ("BOOLEAN".equals(binding))\r
- return "Boolean.parseBoolean("+name+".getValue())";\r
- if ("INTEGER".equals(binding))\r
- return "Integer.parseInt("+name+".getValue())";\r
- if ("DOUBLE".equals(binding))\r
- return "Double.parseDouble("+name+".getValue())";\r
- if ("FLOAT".equals(binding))\r
- return "Float.parseFloat("+name+".getValue())";\r
- return name+".getValue()";\r
+ return binding.getValueGetter(name);\r
}\r
- \r
- protected String getValueGetter(String binding) {\r
+ protected String getValueGetter(TypeEntry binding) {\r
if (binding == null)\r
return "value";\r
- if ("STRING".equals(binding))\r
- return "value";\r
- if ("BOOLEAN".equals(binding))\r
- return "Boolean.parseBoolean(value)";\r
- if ("INTEGER".equals(binding))\r
- return "Integer.parseInt(value)";\r
- if ("DOUBLE".equals(binding))\r
- return "Double.parseDouble(value)";\r
- if ("FLOAT".equals(binding))\r
- return "Float.parseFloat(value)";\r
- return "value";\r
+ return binding.getValueGetter();\r
}\r
\r
protected void handle(TopLevelAttribute topLevelAttribute) {\r
if (useOriginalList(parent, indicator,element, reference, ref, refType)) {\r
// generic list\r
fw.delayedWriter.println(" {");\r
- fw.delayedWriter.println(" Resource list = graph.getPossibleObject(element.getData(),"+ontShort+"XML_hasOriginalElementList);");\r
+ //fw.delayedWriter.println(" Resource list = graph.getPossibleObject(element.getData(),"+ontShort+"XML_hasOriginalElementList);");\r
+ fw.delayedWriter.println(" XMLResource XML = XMLResource.getInstance(graph);");\r
+ fw.delayedWriter.println(" Resource list = graph.getPossibleObject(element.getData(), XML.hasOriginalElementList);");\r
fw.delayedWriter.println(" if (list == null) {");\r
fw.delayedWriter.println(" list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");\r
- fw.delayedWriter.println(" graph.claim(element.getData(),"+ontShort+"XML_hasOriginalElementList,list);");\r
+ //fw.delayedWriter.println(" graph.claim(element.getData(),"+ontShort+"XML_hasOriginalElementList,list);");\r
+ fw.delayedWriter.println(" graph.claim(element.getData(), XML.hasOriginalElementList,list);");\r
fw.delayedWriter.println(" } else {");\r
fw.delayedWriter.println(" org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");\r
fw.delayedWriter.println(" }");\r
\r
fw.delayedWriter2.println(" public static class " + getName(parent) +"_" +ref+" extends org.simantics.xml.sax.base.ValueElementParser {");\r
fw.delayedWriter2.println(" "+ getName(parent) +"_" +ref +"(){");\r
- fw.delayedWriter2.println(" super(\""+ref+"\"," +this.ontologyClassName+".URIs."+getName(parent) + "_has"+ref+", Bindings."+binding+");");\r
+ fw.delayedWriter2.println(" super(\""+ref+"\"," +this.ontologyClassName+".URIs."+getName(parent) + "_has"+ref+", "+binding+");");\r
fw.delayedWriter2.println(" }");\r
fw.delayedWriter2.println(" }");\r
}\r
if (useOriginalList(parent, indicator,element, reference, ref, new QName(obj.getName()))) {\r
// generic list\r
fw.delayedWriter.println(" {");\r
- fw.delayedWriter.println(" Resource list = graph.getPossibleObject(element.getData(),"+ontShort+"XML_hasOriginalElementList);");\r
+ //fw.delayedWriter.println(" Resource list = graph.getPossibleObject(element.getData(),"+ontShort+"XML_hasOriginalElementList);");\r
+ fw.delayedWriter.println(" XMLResource XML = XMLResource.getInstance(graph);");\r
+ fw.delayedWriter.println(" Resource list = graph.getPossibleObject(element.getData(), XML.hasOriginalElementList);");\r
fw.delayedWriter.println(" if (list == null) {");\r
fw.delayedWriter.println(" list = org.simantics.db.common.utils.ListUtils.create(graph, java.util.Collections.singletonList(child.getData()));");\r
- fw.delayedWriter.println(" graph.claim(element.getData(),"+ontShort+"XML_hasOriginalElementList,list);");\r
+ //fw.delayedWriter.println(" graph.claim(element.getData(),"+ontShort+"XML_hasOriginalElementList,list);");\r
+ fw.delayedWriter.println(" graph.claim(element.getData(), XML.hasOriginalElementList,list);");\r
fw.delayedWriter.println(" } else {");\r
fw.delayedWriter.println(" org.simantics.db.common.utils.ListUtils.insertBack(graph, list, java.util.Collections.singletonList(child.getData()));");\r
fw.delayedWriter.println(" }");\r
FileWriter fw = getWriter(parent);\r
if (primitiveType != null) {\r
\r
- String binding = getBindingFromPrimitiveType(primitiveType);\r
+ //String binding = getBindingFromPrimitiveType(primitiveType);\r
+ TypeEntry binding = getTypeEntry(primitiveType);\r
\r
if (binding != null) {\r
writeAttribute(fw, attrName, relationName, binding, isReference);\r
QName base = restriction.getBase();\r
\r
\r
- String binding = getBindingFromPrimitiveType(base);\r
+ //String binding = getBindingFromPrimitiveType(base);\r
+ TypeEntry binding = getTypeEntry(base);\r
writeAttribute(fw, attrName, relationName, binding, isReference);\r
} else {\r
// TODO : using default String attribute should be configured with rules.\r
//throw new RuntimeException("Cannot resolve type for Attribute " + attrName + " -> " + primitiveType.getLocalPart());\r
fw.writer.println(" //FIXME: Cannot resolve type for Attribute " + attrName + " Using default type String");\r
- writeAttribute(fw, attrName, relationName, "STRING", isReference);\r
+ //writeAttribute(fw, attrName, relationName, "STRING", isReference);\r
+ writeAttribute(fw, attrName, relationName, getTypeEntry("string"), isReference);\r
}\r
}\r
\r
- private void writeAttribute(FileWriter fw, String attrName, String relationName, String binding, boolean isReference) {\r
+ //private void writeAttribute(FileWriter fw, String attrName, String relationName, String binding, boolean isReference) {\r
+ private void writeAttribute(FileWriter fw, String attrName, String relationName, TypeEntry binding, boolean isReference) {\r
fw.writer.println(" {");\r
fw.writer.println(" Attribute a = element.getAttribute(\"" +attrName+"\");");\r
fw.writer.println(" if (a != null) {");\r
- fw.writer.println(" graph.claimLiteral(element.getData(),"+relationName+","+getValueGetter(binding,"a")+", Bindings."+binding+");");\r
+ fw.writer.println(" graph.claimLiteral(element.getData(),"+relationName+","+getValueGetter(binding,"a")+", "+binding.binding+");");\r
if (isReference)\r
fw.writer.println(" idProviderValue = a.getValue();"); \r
fw.writer.println(" }");\r
QName base = restriction.getBase();\r
\r
\r
- String binding = getBindingFromPrimitiveType(base);\r
+ //String binding = getBindingFromPrimitiveType(base);\r
+ TypeEntry binding = getTypeEntry(base);\r
fw.writer.println(" @Override");\r
fw.writer.println(" public void configure(WriteGraph graph, Element element, java.lang.String value) throws DatabaseException {");\r
- fw.writer.println(" graph.claimValue(element.getData(),"+getValueGetter(binding)+", Bindings."+binding+");");\r
+ //fw.writer.println(" graph.claimValue(element.getData(),"+getValueGetter(binding)+", Bindings."+binding+");");\r
+ fw.writer.println(" graph.claimValue(element.getData(),"+getValueGetter(binding)+", "+binding.binding +");");\r
fw.writer.println(" }");\r
\r
}\r
if (defaultValue == null)\r
defaultValue = getDefaultValue(atype);\r
\r
- String binding = getBindingFromPrimitiveType(atype);\r
+ //String binding = getBindingFromPrimitiveType(atype);\r
+ TypeEntry binding = getTypeEntry(atype);\r
if (i > 0)\r
fw.writer.print(",");\r
if (defaultValue != null)\r
fw.writer.print(getValueGetter(binding,"a"+(i++)));\r
}\r
fw.writer.println("};");\r
- fw.writer.println(" graph.claimLiteral(element.getData(),"+relationName+", value, Bindings."+arrayBinding+");");\r
+ fw.writer.println(" graph.claimLiteral(element.getData(),"+relationName+", value, "+arrayBinding+");");\r
fw.writer.println(" }");\r
\r
}\r
writer.println("import org.simantics.db.exception.DatabaseException;");\r
writer.println("import org.simantics.xml.sax.base.Attribute;");\r
writer.println("import org.simantics.xml.sax.base.Element;");\r
+ writer.println("import org.simantics.xml.sax.ontology.XMLResource;");\r
if (!isList) {\r
writer.println("import org.simantics.layer0.Layer0;");\r
} else {\r
}\r
writer.println();\r
writer.println("L0 = <http://www.simantics.org/Layer0-1.1>");\r
+ writer.println("XML = <http://www.simantics.org/XML-1.0>");\r
writer.println();\r
writer.println(ontRoot + " = <" + ontologyName +"-"+ version+"> : L0.Ontology");\r
writer.println(" @L0.new");\r
\r
ontRoot += ".";\r
// TODO : these could be created in separate base ontology.\r
- writer.println(commentTag + " Built-in types");\r
- writer.println();\r
- writer.println(ontRoot+"XML : L0.Library");\r
- writer.println(ontRoot+"XML.hasAttribute <R L0.HasProperty");\r
- writer.println(ontRoot+"XML.hasID <R "+ontRoot+"XML.hasAttribute : L0.FunctionalRelation");\r
- writer.println(" --> L0.String");\r
- writer.println(ontRoot+"XML.ComplexType <T L0.Entity");\r
- writer.println(ontRoot+"XML.hasComplexType <R L0.IsComposedOf");\r
- writer.println(ontRoot+"XML.AttributeGroup <T L0.Entity");\r
- writer.println(ontRoot+"XML.Element <T L0.Entity");\r
- writer.println(ontRoot+"XML.hasElement <R L0.IsComposedOf");\r
- writer.println(ontRoot+"XML.ElementList <T L0.List");\r
- writer.println(ontRoot+"XML.hasElementList <R L0.IsComposedOf");\r
- writer.println(ontRoot+"XML.hasOriginalElementList <R " + ontRoot+"XML.hasElementList");\r
- writer.println(ontRoot+"XML.hasReference <R L0.IsRelatedTo");\r
- writer.println(ontRoot+"XML.hasExternalReference <R L0.IsRelatedTo");\r
- writer.println(" L0.InverseOf " + ontRoot+"XML.externalReferenceOf <R L0.IsRelatedTo");\r
- writer.println();\r
+// writer.println(commentTag + " Built-in types");\r
+// writer.println();\r
+// writer.println(ontRoot+"XML : L0.Library");\r
+// writer.println(ontRoot+"XML.hasAttribute <R L0.HasProperty");\r
+// writer.println(ontRoot+"XML.hasID <R "+ontRoot+"XML.hasAttribute : L0.FunctionalRelation");\r
+// writer.println(" --> L0.String");\r
+// writer.println(ontRoot+"XML.ComplexType <T L0.Entity");\r
+// writer.println(ontRoot+"XML.hasComplexType <R L0.IsComposedOf");\r
+// writer.println(ontRoot+"XML.AttributeGroup <T L0.Entity");\r
+// writer.println(ontRoot+"XML.Element <T L0.Entity");\r
+// writer.println(ontRoot+"XML.hasElement <R L0.IsComposedOf");\r
+// writer.println(ontRoot+"XML.ElementList <T L0.List");\r
+// writer.println(ontRoot+"XML.hasElementList <R L0.IsComposedOf");\r
+// writer.println(ontRoot+"XML.hasOriginalElementList <R " + ontRoot+"XML.hasElementList");\r
+// writer.println(ontRoot+"XML.hasReference <R L0.IsRelatedTo");\r
+// writer.println(ontRoot+"XML.hasExternalReference <R L0.IsRelatedTo");\r
+// writer.println(" L0.InverseOf " + ontRoot+"XML.externalReferenceOf <R L0.IsRelatedTo");\r
+// writer.println();\r
writer.println(ontRoot+"ComplexTypes : L0.Library");\r
writer.println(ontRoot+"AttributeGroups : L0.Library");\r
writer.println();\r
writer.print(" <R " + type);\r
}\r
} else {\r
- writer.print(" <R " + ontRoot+"XML.hasElement");\r
+ writer.print(" <R XML.hasElement");\r
}\r
\r
writer.println();\r
}\r
}\r
if (!single) {\r
- writer.println(ontRoot+name+ "List <T "+ontRoot+"XML.ElementList");\r
+ writer.println(ontRoot+name+ "List <T XML.ElementList");\r
if (types.size() == 0) {\r
- writer.println(relationName+ "List <R "+ontRoot+"XML.hasElementList : L0.FunctionalRelation");\r
+ writer.println(relationName+ "List <R XML.hasElementList : L0.FunctionalRelation");\r
} else {\r
writer.print(relationName+ "List");\r
for (String type : types) {\r
writer.println(ontRoot+getName(parent)+".has"+refName + " <R " + ontRoot+ getName(obj,"has"));\r
writer.println(" --> " + ontRoot+getName(obj));\r
} else {\r
- writer.println(ontRoot+getName(parent)+".has"+refName + " <R " + ontRoot+"XML.hasElement");\r
+ writer.println(ontRoot+getName(parent)+".has"+refName + " <R XML.hasElement");\r
writer.println(" --> " + getType(refType));\r
}\r
\r
if (useElementList(parent, indicator,element, reference, refName, refType)) {\r
\r
if (type == null) {\r
- writer.println(ontRoot+getName(parent)+"."+refName + "List <T " + ontRoot+"XML.ElementList");\r
+ writer.println(ontRoot+getName(parent)+"."+refName + "List <T XML.ElementList");\r
writer.println(ontRoot+getName(parent)+".has"+refName + "List <R " + ontRoot+getName(obj,"has")+"List : L0.FunctionalRelation");\r
} else {\r
- writer.println(ontRoot+getName(parent)+"."+refName + "List <T " + ontRoot+"XML.ElementList");\r
- writer.println(ontRoot+getName(parent)+".has"+refName + "List <R " + ontRoot+"XML.hasElementList : L0.FunctionalRelation"); \r
+ writer.println(ontRoot+getName(parent)+"."+refName + "List <T XML.ElementList");\r
+ writer.println(ontRoot+getName(parent)+".has"+refName + "List <R XML.hasElementList : L0.FunctionalRelation"); \r
}\r
}\r
}\r
writer.println(ontRoot+getName(parent)+".has"+refName + " <R " + ontRoot+ getName(obj,"has"));\r
writer.println(" --> " + ontRoot+getName(obj));\r
if (useElementList(parent, indicator,element, reference, refName, new QName(obj.getName()))) {\r
- writer.println(ontRoot+getName(parent)+"."+refName + "List <T " + ontRoot+"XML.ElementList");\r
+ writer.println(ontRoot+getName(parent)+"."+refName + "List <T XML.ElementList");\r
writer.println(ontRoot+getName(parent)+".has"+refName + "List <R " + ontRoot+getName(obj,"has")+"List : L0.FunctionalRelation");\r
}\r
}\r
relationName = ontRoot+"has"+name;\r
if (parent != null)\r
relationName = ontRoot+getName(parent)+".has"+name;\r
- relationType = ontRoot+"XML.hasAttribute";\r
+ relationType = "XML.hasAttribute";\r
}\r
else if (ref != null && parent != null) {\r
relationName = ontRoot+getName(parent)+".has"+ref.getLocalPart();\r
if (ontType != null) {\r
id = getTypeEntry(primitiveType).id;\r
if (id)\r
- relationType = ontRoot+"XML.hasID";\r
+ relationType = "XML.hasID";\r
} else {\r
\r
}\r
protected void handle(SchemaObject parent, AttributeGroup attributeGroup) {\r
if (parent == null) {\r
NamedAttributeGroup group = (NamedAttributeGroup)attributeGroup;\r
- writer.println(ontRoot+getAttributeGroupPrefix()+group.getName()+ " <T " + ontRoot +"XML.AttributeGroup");\r
+ writer.println(ontRoot+getAttributeGroupPrefix()+group.getName()+ " <T XML.AttributeGroup");\r
SchemaObject obj = new SchemaObject(parent,attributeGroup);\r
for (Annotated annotated : group.getAttributeOrAttributeGroup()) {\r
if (annotated instanceof Attribute) {\r
if (parent != null)\r
relationName = ontRoot+getName(parent)+".has"+name;\r
\r
- writer.println(relationName+ " <R "+ontRoot+"XML.hasAttribute : L0.FunctionalRelation");\r
+ writer.println(relationName+ " <R XML.hasAttribute : L0.FunctionalRelation");\r
\r
String ontType = getL0Type(base);\r
writer.println(" --> " + ontType);\r
\r
String relationName = ontRoot+getName(topLevelComplexType,"has");//ontRoot+"has"+name;\r
\r
- writer.println(relationName+ " <R "+ontRoot+"XML.hasComplexType");\r
- writer.println(relationName+ "List <R "+ontRoot+"XML.hasElementList");\r
+ writer.println(relationName+ " <R XML.hasComplexType");\r
+ writer.println(relationName+ "List <R XML.hasElementList");\r
//writer.println(" --> " + ontRoot+getComplexTypePrefix()+name);\r
writer.println(" --> " + ontRoot+name);\r
writer.println();\r
- String baseType = ontRoot+"XML.ComplexType";\r
+ String baseType = "XML.ComplexType";\r
\r
QName base = getComplexTypeBase(topLevelComplexType.getComplexType());\r
if (base != null) {\r
// if (parent != null)\r
// name = parent +"_"+name;\r
\r
- String type = ontRoot+"XML.Element";\r
+ String type = "XML.Element";\r
Set<String> types = new LinkedHashSet<String>();\r
if (element.getType() != null) {\r
types.add(getType(element.getType()));\r
// //relationName = ontRoot+getComplexTypePrefix()+"has"+name.substring(getComplexTypePrefix().length());\r
// relationName = ontRoot+getName(elementObj.getParent()) + "has"+element.getName();\r
// }\r
- writer.println(relationName+ " <R "+ontRoot+"XML.hasElement");\r
- writer.println(relationName+ "List <R "+ontRoot+"XML.hasElementList");\r
+ writer.println(relationName+ " <R XML.hasElement");\r
+ writer.println(relationName+ "List <R XML.hasElementList");\r
\r
writer.println(ontRoot+name+ " <T "+type);\r
\r
List<IDReference> references = getIDReferences(element);\r
\r
for (IDReference ref : references) {\r
- writer.println(ontRoot+name+"."+ref.getReference().getName()+ " <R " +ontRoot+"XML.hasReference");\r
+ writer.println(ontRoot+name+"."+ref.getReference().getName()+ " <R XML.hasReference");\r
}\r
\r
writer.println();\r
Map<String,TypeEntry> l0Types = new HashMap<String, SchemaConversionBase.TypeEntry>();\r
typeMap.put(CONVERSION_NS, l0Types);\r
\r
- schemaTypes.put("string", new TypeEntry("L0.String", "STRING", "String", ""));\r
- schemaTypes.put("NMTOKEN", new TypeEntry("L0.String", "STRING", "String", ""));\r
- schemaTypes.put("token", new TypeEntry("L0.String", "STRING", "String", ""));\r
- schemaTypes.put("ID", new TypeEntry("L0.String", "STRING", "String", "",true));\r
- schemaTypes.put("IDREF", new TypeEntry("L0.String", "STRING", "String", ""));\r
- schemaTypes.put("date", new TypeEntry("L0.String", "STRING", "String", ""));\r
- schemaTypes.put("time", new TypeEntry("L0.String", "STRING", "String", ""));\r
- schemaTypes.put("anyURI", new TypeEntry("L0.URI", "STRING", "String", ""));\r
- schemaTypes.put("double", new TypeEntry("L0.Double", "DOUBLE", "double", "Double.NaN"));\r
- schemaTypes.put("float", new TypeEntry("L0.Float", "FLOAT", "float", "Float.NaN"));\r
- schemaTypes.put("decimal", new TypeEntry("L0.Double", "DOUBLE", "double", "Double.NaN"));\r
- schemaTypes.put("boolean", new TypeEntry("L0.Boolean", "BOOLEAN", "boolean", "false"));\r
- schemaTypes.put("integer", new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("positiveInteger", new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("nonPositiveInteger", new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("nonNegativeInteger", new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("negativeInteger", new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("unsignedInt", new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("int", new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("short", new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("unsignedShort",new TypeEntry("L0.Integer", "INTEGER", "int", "0"));\r
- schemaTypes.put("byte", new TypeEntry("L0.Byte", "BYTE", "byte", "0"));\r
- schemaTypes.put("unsignedByte", new TypeEntry("L0.Byte", "BYTE", "byte", "0"));\r
- schemaTypes.put("long", new TypeEntry("L0.Long", "LONG", "long", "0"));\r
- schemaTypes.put("unsignedLong", new TypeEntry("L0.Long", "LONG", "long", "0"));\r
+ schemaTypes.put("string", new TypeEntry("L0.String", "Bindings.STRING", "String", "","",""));\r
+ schemaTypes.put("NMTOKEN", new TypeEntry("L0.String", "Bindings.STRING", "String", "","",""));\r
+ schemaTypes.put("token", new TypeEntry("L0.String", "Bindings.STRING", "String", "","",""));\r
+ schemaTypes.put("ID", new TypeEntry("L0.String", "Bindings.STRING", "String", "","","",true));\r
+ schemaTypes.put("IDREF", new TypeEntry("L0.String", "Bindings.STRING", "String", "","",""));\r
+ schemaTypes.put("date", new TypeEntry("XML.Date", "org.simantics.xml.sax.base.datatypes.literal.Date.BINDING", "org.simantics.xml.sax.base.datatypes.literal.Date", "","org.simantics.xml.sax.base.datatypes.literal.Date.parseDate(",")"));\r
+ schemaTypes.put("time", new TypeEntry("XML.Time", "org.simantics.xml.sax.base.datatypes.literal.Time.BINDING", "org.simantics.xml.sax.base.datatypes.literal.Time", "","org.simantics.xml.sax.base.datatypes.literal.Time.parseTime(",")"));\r
+ schemaTypes.put("dateTime", new TypeEntry("XML.DateTime", "org.simantics.xml.sax.base.datatypes.literal.DateTime.BINDING", "org.simantics.xml.sax.base.datatypes.literal.DateTime", "","org.simantics.xml.sax.base.datatypes.literal.DateTime.parseDateTime(",")"));\r
+ schemaTypes.put("anyURI", new TypeEntry("L0.URI", "Bindings.STRING", "String", "","",""));\r
+ schemaTypes.put("double", new TypeEntry("L0.Double", "Bindings.DOUBLE", "double", "Double.NaN","Double.parseDouble(",")"));\r
+ schemaTypes.put("float", new TypeEntry("L0.Float", "Bindings.FLOAT", "float", "Float.NaN","Float.parseFloat(",")"));\r
+ schemaTypes.put("decimal", new TypeEntry("L0.Double", "Bindings.DOUBLE", "double", "Double.NaN","Double.parseDouble(",")"));\r
+ schemaTypes.put("boolean", new TypeEntry("L0.Boolean", "Bindings.BOOLEAN", "boolean", "false","Boolean.parseBoolean(",")"));\r
+ schemaTypes.put("integer", new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("positiveInteger", new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("nonPositiveInteger", new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("nonNegativeInteger", new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("negativeInteger", new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("unsignedInt", new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("int", new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("short", new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("unsignedShort",new TypeEntry("L0.Integer", "Bindings.INTEGER", "int", "0","Integer.parseInt(",")"));\r
+ schemaTypes.put("byte", new TypeEntry("L0.Byte", "Bindings.BYTE", "byte", "0","Byte.parseByte(",")"));\r
+ schemaTypes.put("unsignedByte", new TypeEntry("L0.Byte", "Bindings.BYTE", "byte", "0","Byte.parseByte(",")"));\r
+ schemaTypes.put("long", new TypeEntry("L0.Long", "Bindings.LONG", "long", "0","Long.parseLong(",")"));\r
+ schemaTypes.put("unsignedLong", new TypeEntry("L0.Long", "Bindings.LONG", "long", "0","Long.parseLong(",")"));\r
\r
\r
\r
- l0Types.put("doubleArray", new TypeEntry("L0.DoubleArray", "DOUBLE_ARRAY", "double[]", null));\r
- l0Types.put("stringArray", new TypeEntry("L0.StringArray", "STRING_ARRAY", "string[]", null));\r
+ l0Types.put("doubleArray", new TypeEntry("L0.DoubleArray", "Bindings.DOUBLE_ARRAY", "double[]", null,null,null));\r
+ l0Types.put("stringArray", new TypeEntry("L0.StringArray", "Bindings.STRING_ARRAY", "string[]", null,null,null));\r
}\r
\r
\r
return null;\r
TypeEntry entry = types.get(type.getLocalPart());\r
return entry;\r
- \r
+ }\r
+ protected TypeEntry getTypeEntry(String type) {\r
+ for (Map<String,TypeEntry> types : typeMap.values()) {\r
+ TypeEntry entry = types.get(type);\r
+ if (entry != null)\r
+ return entry;\r
+ }\r
+ return null;\r
}\r
\r
protected String getL0TypeFromPrimitiveType(QName primitiveType) {\r
String javaType;\r
String defaultValue;\r
boolean id;\r
- public TypeEntry(String l0Type, String binding, String javaType, String defaultValue) {\r
+ String getterPrefix;\r
+ String getterPostfix;\r
+ public TypeEntry(String l0Type, String binding, String javaType, String defaultValue, String getterPrefix, String getterPostfix) {\r
super();\r
this.l0Type = l0Type;\r
this.binding = binding;\r
this.javaType = javaType;\r
this.defaultValue = defaultValue;\r
this.id = false;\r
+ this.getterPrefix = getterPrefix;\r
+ this.getterPostfix = getterPostfix;\r
+ \r
}\r
\r
- public TypeEntry(String l0Type, String binding, String javaType, String defaultValue, boolean id) {\r
+ public TypeEntry(String l0Type, String binding, String javaType, String defaultValue, String getterPrefix, String getterPostfix, boolean id) {\r
super();\r
this.l0Type = l0Type;\r
this.binding = binding;\r
this.javaType = javaType;\r
this.defaultValue = defaultValue;\r
this.id = id;\r
+ this.getterPrefix = getterPrefix;\r
+ this.getterPostfix = getterPostfix;\r
+ }\r
+ \r
+ public String getValueGetter(String name) {\r
+ return getterPrefix + name + ".getValue()"+getterPostfix;\r
+ }\r
+ public String getValueGetter() {\r
+ return getterPrefix + "value"+getterPostfix;\r
}\r
\r
}\r