For example procedural UCs and their substructure requests would report
tons of these all the time, which is worthless.
Also added an SCL type for MOD.ChangeInformation to avoid having to see
warnings about the SCL type of MOD.ChangeInformation not being
available:
```
WARN [...] org.simantics.modeling.SCLTypeUtils: SCLTypeUtils.getType
cannot transform data type '{
createdBy : String,
createdAt : Long,
modifiedBy : String,
modifiedAt : Long
}' to type. Returns a as default.
```
gitlab #546
Change-Id: I30210fb3055a4d844fe6e9b07c64490a45c14ecd
//##########################################################################
MOD.ChangeInformation <T L0.Literal
//##########################################################################
MOD.ChangeInformation <T L0.Literal
+ @L0.assert L0.HasValueType "ChangeInformation"
@L0.assert L0.HasDataType ${ createdBy : String, createdAt : Long, modifiedBy : String, modifiedAt : Long }
MOD.Functions.modificationTimeTextLong : L0.Function
@L0.assert L0.HasDataType ${ createdBy : String, createdAt : Long, modifiedBy : String, modifiedAt : Long }
MOD.Functions.modificationTimeTextLong : L0.Function
--- /dev/null
+importJava "org.simantics.modeling.adapters.ChangeInformation" where
+ data ChangeInformation
import org.simantics.databoard.type.StringType;
import org.simantics.db.layer0.request.PropertyInfo;
import org.simantics.scl.compiler.types.TCon;
import org.simantics.databoard.type.StringType;
import org.simantics.db.layer0.request.PropertyInfo;
import org.simantics.scl.compiler.types.TCon;
+import org.simantics.scl.compiler.types.TVar;
import org.simantics.scl.compiler.types.Type;
import org.simantics.scl.compiler.types.Types;
import org.simantics.scl.compiler.types.kinds.Kinds;
import org.simantics.scl.compiler.types.Type;
import org.simantics.scl.compiler.types.Types;
import org.simantics.scl.compiler.types.kinds.Kinds;
private static final Logger LOGGER = LoggerFactory.getLogger(SCLTypeUtils.class);
private static final THashMap<String, Type> TYPE_MAP = new THashMap<String, Type>();
private static final Logger LOGGER = LoggerFactory.getLogger(SCLTypeUtils.class);
private static final THashMap<String, Type> TYPE_MAP = new THashMap<String, Type>();
+ private static final TVar STAR = Types.var(Kinds.STAR);
+
private static void add(TCon type) {
TYPE_MAP.put(type.name, type);
}
private static void add(TCon type) {
TYPE_MAP.put(type.name, type);
}
Types.functionE(new Type[] {variable, Types.RESOURCE}, Types.READ_GRAPH, Types.RESOURCE));
add((TCon)Types.RESOURCE);
Types.functionE(new Type[] {variable, Types.RESOURCE}, Types.READ_GRAPH, Types.RESOURCE));
add((TCon)Types.RESOURCE);
+ add(Types.con("Simantics/ChangeInformation", "ChangeInformation")); // MOD.ChangeInformation
add(Types.con("Simantics/GUID", "GUID")); // L0.GUID
add(Types.con("Simantics/Variables", "StructuredProperty")); // L0.methods
add(Types.con("Simantics/Variables", "ValueAccessor")); // L0.ValueAccessor
add(Types.con("Simantics/GUID", "GUID")); // L0.GUID
add(Types.con("Simantics/Variables", "StructuredProperty")); // L0.methods
add(Types.con("Simantics/Variables", "ValueAccessor")); // L0.ValueAccessor
Type type = TYPE_MAP.get(typeText);
if(type == null) {
LOGGER.warn("SCLTypeUtils.getType cannot transform '" + typeText + "' to type. Returns a as default.");
Type type = TYPE_MAP.get(typeText);
if(type == null) {
LOGGER.warn("SCLTypeUtils.getType cannot transform '" + typeText + "' to type. Returns a as default.");
- return Types.var(Kinds.STAR);
return Types.list(getType(((ArrayType)dataType).componentType));
else {
LOGGER.warn("SCLTypeUtils.getType cannot transform data type '" + dataType + "' to type. Returns a as default.");
return Types.list(getType(((ArrayType)dataType).componentType));
else {
LOGGER.warn("SCLTypeUtils.getType cannot transform data type '" + dataType + "' to type. Returns a as default.");
- return Types.var(Kinds.STAR);
- public static Type getType(PropertyInfo propertyInfo) {
+ public static Type getType(PropertyInfo propertyInfo, boolean warnOfNoTypeInformation) {
if(propertyInfo.requiredValueType != null)
return getType(propertyInfo.requiredValueType);
else if(propertyInfo.requiredDatatype != null)
return getType(propertyInfo.requiredDatatype);
else {
if(propertyInfo.requiredValueType != null)
return getType(propertyInfo.requiredValueType);
else if(propertyInfo.requiredDatatype != null)
return getType(propertyInfo.requiredDatatype);
else {
- LOGGER.warn(propertyInfo.name + " doesn't have type information. Returns a as default.");
- return Types.var(Kinds.STAR);
+ if (warnOfNoTypeInformation)
+ LOGGER.warn(propertyInfo.name + " doesn't have type information. Returns a as default.");
+ return STAR;
+
+ public static Type getType(PropertyInfo propertyInfo) {
+ return getType(propertyInfo, propertyInfo.isHasProperty);
+ }