Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
CityDoctor
QualityADE
Commits
52ac2709
Commit
52ac2709
authored
Mar 21, 2023
by
Matthias Betz
Browse files
update quality ade to 1.0.0
parent
38715130
Pipeline
#7237
passed with stage
in 6 seconds
Changes
22
Pipelines
1
Hide whitespace changes
Inline
Side-by-side
citygml4j-quality-ade/pom.xml
View file @
52ac2709
...
...
@@ -4,7 +4,7 @@
<modelVersion>
4.0.0
</modelVersion>
<groupId>
de.hft.stuttgart
</groupId>
<artifactId>
citygml4j-quality-ade
</artifactId>
<version>
3.
1.4
</version>
<version>
3.
2.0
</version>
<properties>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEContext.java
View file @
52ac2709
...
...
@@ -25,7 +25,7 @@ import org.citygml4j.xml.module.ade.ADEModule;
public
class
QualityADEContext
implements
CityGMLADE
{
private
final
List
<
ADEModule
>
modules
=
Collections
.
singletonList
(
QualityADEModule
.
V
0_1_4
);
private
final
List
<
ADEModule
>
modules
=
Collections
.
singletonList
(
QualityADEModule
.
V
1_0_0
);
@Override
public
List
<
ADEModule
>
getADEModules
()
{
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/QualityADEModule.java
View file @
52ac2709
...
...
@@ -22,9 +22,9 @@ import org.citygml4j.xml.module.ade.ADEModule;
public
class
QualityADEModule
extends
ADEModule
{
public
static
final
String
NAMESPACE_URI
=
"https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/
0.1.4
"
;
public
static
final
String
NAMESPACE_URI
=
"https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/
1.0.0
"
;
public
static
final
QualityADEModule
V
0_1_4
=
new
QualityADEModule
();
public
static
final
QualityADEModule
V
1_0_0
=
new
QualityADEModule
();
public
QualityADEModule
()
{
super
(
NAMESPACE_URI
,
"qual"
,
CityGMLVersion
.
v2_0
);
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/SemanticAttributeInvalidErrorAdapter.java
0 → 100644
View file @
52ac2709
/*-
* Copyright 2023 Hochschule für Technik Stuttgart
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
de.hft.stuttgart.quality.adapter.types
;
import
javax.xml.namespace.QName
;
import
org.xmlobjects.annotation.XMLElement
;
import
org.xmlobjects.builder.ObjectBuildException
;
import
org.xmlobjects.serializer.ObjectSerializeException
;
import
org.xmlobjects.stream.XMLReadException
;
import
org.xmlobjects.stream.XMLReader
;
import
org.xmlobjects.stream.XMLWriteException
;
import
org.xmlobjects.stream.XMLWriter
;
import
org.xmlobjects.xml.Attributes
;
import
org.xmlobjects.xml.Element
;
import
org.xmlobjects.xml.Namespaces
;
import
de.hft.stuttgart.quality.QualityADEModule
;
import
de.hft.stuttgart.quality.model.types.SemanticAttributeInvalidError
;
@XMLElement
(
name
=
"SE_ATTRIBUTE_INVALID"
,
namespaceURI
=
QualityADEModule
.
NAMESPACE_URI
)
public
class
SemanticAttributeInvalidErrorAdapter
extends
AbstractSemanticErrorAdapter
<
SemanticAttributeInvalidError
>
{
@Override
public
SemanticAttributeInvalidError
createObject
(
QName
name
,
Object
parent
)
throws
ObjectBuildException
{
return
new
SemanticAttributeInvalidError
();
}
@Override
public
void
buildChildObject
(
SemanticAttributeInvalidError
object
,
QName
name
,
Attributes
attributes
,
XMLReader
reader
)
throws
ObjectBuildException
,
XMLReadException
{
if
(!
QualityADEModule
.
NAMESPACE_URI
.
equals
(
name
.
getNamespaceURI
()))
{
return
;
}
switch
(
name
.
getLocalPart
())
{
case
"childId"
:
reader
.
getTextContent
().
ifPresent
(
object:
:
setChildId
);
break
;
case
"attributeName"
:
reader
.
getTextContent
().
ifPresent
(
object:
:
setAttributeName
);
break
;
default
:
throw
new
IllegalStateException
(
"Cannot handle name "
+
name
+
" when building SemanticAttributeInvalidError element"
);
}
}
@Override
public
Element
createElement
(
SemanticAttributeInvalidError
object
,
Namespaces
namespaces
)
throws
ObjectSerializeException
{
return
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"SE_ATTRIBUTE_INVALID"
);
}
@Override
public
void
writeChildElements
(
SemanticAttributeInvalidError
object
,
Namespaces
namespaces
,
XMLWriter
writer
)
throws
ObjectSerializeException
,
XMLWriteException
{
if
(
object
.
getChildId
()
!=
null
)
{
writer
.
writeElement
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"childId"
).
addTextContent
(
object
.
getChildId
()));
}
if
(
object
.
getAttributeName
()
!=
null
)
{
writer
.
writeElement
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"attributeName"
)
.
addTextContent
(
object
.
getAttributeName
()));
}
}
}
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/SemanticAttributeMissingErrorAdapter.java
View file @
52ac2709
...
...
@@ -37,9 +37,6 @@ public class SemanticAttributeMissingErrorAdapter extends AbstractSemanticErrorA
case
"attributeName"
:
reader
.
getTextContent
().
ifPresent
(
object:
:
setAttributeName
);
break
;
case
"generic"
:
reader
.
getTextContent
().
ifPresent
(
s
->
object
.
setGeneric
(
Boolean
.
parseBoolean
(
s
)));
break
;
default
:
throw
new
IllegalStateException
(
"Cannot handle name "
+
name
+
" when building SemanticAttributeMissingError element"
);
...
...
@@ -63,7 +60,5 @@ public class SemanticAttributeMissingErrorAdapter extends AbstractSemanticErrorA
writer
.
writeElement
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"attributeName"
)
.
addTextContent
(
object
.
getAttributeName
()));
}
writer
.
writeElement
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"generic"
)
.
addTextContent
(
Boolean
.
toString
(
object
.
isGeneric
())));
}
}
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/SemanticAttributeWrongValueErrorAdapter.java
View file @
52ac2709
...
...
@@ -38,9 +38,6 @@ public class SemanticAttributeWrongValueErrorAdapter
case
"attributeName"
:
reader
.
getTextContent
().
ifPresent
(
object:
:
setAttributeName
);
break
;
case
"generic"
:
reader
.
getTextContent
().
ifPresent
(
s
->
object
.
setGeneric
(
Boolean
.
parseBoolean
(
s
)));
break
;
default
:
throw
new
IllegalStateException
(
"Cannot handle name "
+
name
+
" when building SemanticAttributeWrongValueError element"
);
...
...
@@ -65,7 +62,5 @@ public class SemanticAttributeWrongValueErrorAdapter
writer
.
writeElement
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"attributeName"
)
.
addTextContent
(
object
.
getAttributeName
()));
}
writer
.
writeElement
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"generic"
)
.
addTextContent
(
Boolean
.
toString
(
object
.
isGeneric
())));
}
}
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/ValidationAdapter.java
View file @
52ac2709
...
...
@@ -5,6 +5,7 @@ import javax.xml.namespace.QName;
import
org.citygml4j.xml.adapter.core.AbstractFeatureAdapter
;
import
org.xmlobjects.annotation.XMLElement
;
import
org.xmlobjects.builder.ObjectBuildException
;
import
org.xmlobjects.gml.adapter.base.ReferenceAdapter
;
import
org.xmlobjects.serializer.ObjectSerializeException
;
import
org.xmlobjects.stream.XMLReadException
;
import
org.xmlobjects.stream.XMLReader
;
...
...
@@ -16,7 +17,6 @@ import org.xmlobjects.xml.Namespaces;
import
de.hft.stuttgart.quality.QualityADEModule
;
import
de.hft.stuttgart.quality.adapter.properties.StatisticsPropertyAdapter
;
import
de.hft.stuttgart.quality.adapter.properties.ValidationPlanPropertyAdapter
;
import
de.hft.stuttgart.quality.model.types.Validation
;
@XMLElement
(
name
=
"Validation"
,
namespaceURI
=
QualityADEModule
.
NAMESPACE_URI
)
...
...
@@ -45,8 +45,8 @@ public class ValidationAdapter extends AbstractFeatureAdapter<Validation> {
case
"statistics"
:
object
.
setStatistics
(
reader
.
getObjectUsingBuilder
(
StatisticsPropertyAdapter
.
class
));
break
;
case
"validationPlan"
:
object
.
setValidationPlan
(
reader
.
getObjectUsingBuilder
(
ValidationPlanProperty
Adapter
.
class
));
case
"validationPlan
ID
"
:
object
.
setValidationPlan
(
reader
.
getObjectUsingBuilder
(
Reference
Adapter
.
class
));
break
;
default
:
super
.
buildChildObject
(
object
,
name
,
attributes
,
reader
);
...
...
@@ -75,8 +75,8 @@ public class ValidationAdapter extends AbstractFeatureAdapter<Validation> {
object
.
getStatistics
(),
StatisticsPropertyAdapter
.
class
,
namespaces
);
}
if
(
object
.
getValidationPlan
()
!=
null
)
{
writer
.
writeElementUsingSerializer
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"validationPlan"
),
object
.
getValidationPlan
(),
ValidationPlanProperty
Adapter
.
class
,
namespaces
);
writer
.
writeElementUsingSerializer
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"validationPlan
ID
"
),
object
.
getValidationPlan
(),
Reference
Adapter
.
class
,
namespaces
);
}
}
}
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/ValidationPlanAdapter.java
View file @
52ac2709
...
...
@@ -2,11 +2,10 @@ package de.hft.stuttgart.quality.adapter.types;
import
javax.xml.namespace.QName
;
import
org.citygml4j.xml.adapter.core.AbstractFeatureAdapter
;
import
org.xmlobjects.annotation.XMLElement
;
import
org.xmlobjects.builder.ObjectBuildException
;
import
org.xmlobjects.builder.ObjectBuilder
;
import
org.xmlobjects.serializer.ObjectSerializeException
;
import
org.xmlobjects.serializer.ObjectSerializer
;
import
org.xmlobjects.stream.XMLReadException
;
import
org.xmlobjects.stream.XMLReader
;
import
org.xmlobjects.stream.XMLWriteException
;
...
...
@@ -23,7 +22,7 @@ import de.hft.stuttgart.quality.model.properties.RequirementProperty;
import
de.hft.stuttgart.quality.model.types.ValidationPlan
;
@XMLElement
(
name
=
"ValidationPlan"
,
namespaceURI
=
QualityADEModule
.
NAMESPACE_URI
)
public
class
ValidationPlanAdapter
implem
en
t
s
ObjectBuilder
<
ValidationPlan
>,
ObjectSerializ
er
<
ValidationPlan
>
{
public
class
ValidationPlanAdapter
ext
en
d
s
AbstractFeatureAdapt
er
<
ValidationPlan
>
{
@Override
public
ValidationPlan
createObject
(
QName
name
,
Object
parent
)
throws
ObjectBuildException
{
...
...
@@ -47,7 +46,7 @@ public class ValidationPlanAdapter implements ObjectBuilder<ValidationPlan>, Obj
object
.
getRequirements
().
add
(
reader
.
getObjectUsingBuilder
(
RequirementPropertyAdapter
.
class
));
break
;
default
:
throw
new
IllegalStateException
(
"Cannot handle name "
+
name
+
" when building ValidationPlan element"
);
super
.
buildChildObject
(
object
,
name
,
attributes
,
reader
);
}
}
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/adapter/types/ValidationResultAdapter.java
View file @
52ac2709
...
...
@@ -37,8 +37,8 @@ public class ValidationResultAdapter implements ObjectBuilder<ValidationResult>,
return
;
}
switch
(
name
.
getLocalPart
())
{
case
"validation
Plan
ID"
:
object
.
setValidation
Plan
ID
(
reader
.
getObjectUsingBuilder
(
ReferenceAdapter
.
class
));
case
"validationID"
:
object
.
setValidationID
(
reader
.
getObjectUsingBuilder
(
ReferenceAdapter
.
class
));
break
;
case
"error"
:
object
.
getErrors
().
add
(
reader
.
getObjectUsingBuilder
(
AbstractErrorPropertyAdapter
.
class
));
...
...
@@ -60,7 +60,7 @@ public class ValidationResultAdapter implements ObjectBuilder<ValidationResult>,
public
void
writeChildElements
(
ValidationResult
object
,
Namespaces
namespaces
,
XMLWriter
writer
)
throws
ObjectSerializeException
,
XMLWriteException
{
if
(
object
.
getValidationPlanID
()
!=
null
)
{
writer
.
writeElementUsingSerializer
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"validation
Plan
ID"
),
writer
.
writeElementUsingSerializer
(
Element
.
of
(
QualityADEModule
.
NAMESPACE_URI
,
"validationID"
),
object
.
getValidationPlanID
(),
ReferenceAdapter
.
class
,
namespaces
);
}
for
(
AbstractErrorProperty
err
:
object
.
getErrors
())
{
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/ErrorId.java
View file @
52ac2709
...
...
@@ -22,6 +22,6 @@ public enum ErrorId {
GE_P_INTERSECTING_RINGS
,
GE_P_HOLE_OUTSIDE
,
GE_P_ORIENTATION_RINGS_SAME
,
GE_P_INNER_RINGS_NESTED
,
GE_S_TOO_FEW_POLYGONS
,
GE_S_NOT_CLOSED
,
GE_S_NON_MANIFOLD_EDGE
,
GE_S_POLYGON_WRONG_ORIENTATION
,
GE_S_ALL_POLYGONS_WRONG_ORIENTATION
,
GE_S_NON_MANIFOLD_VERTEX
,
GE_S_SELF_INTERSECTION
,
GE_S_MULTIPLE_CONNECTED_COMPONENTS
,
SE_ATTRIBUTE_WRONG_VALUE
,
SE_ATTRIBUTE_MISSING
GE_S_MULTIPLE_CONNECTED_COMPONENTS
,
SE_ATTRIBUTE_WRONG_VALUE
,
SE_ATTRIBUTE_MISSING
,
SE_ATTRIBUTE_INVALID
}
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/enums/RequirementId.java
View file @
52ac2709
...
...
@@ -23,6 +23,6 @@ public enum RequirementId {
R_GE_P_ORIENTATION_RINGS_SAME
,
R_GE_P_INNER_RINGS_NESTED
,
R_GE_S_TOO_FEW_POLYGONS
,
R_GE_S_NOT_CLOSED
,
R_GE_S_NON_MANIFOLD_EDGE
,
R_GE_S_POLYGON_WRONG_ORIENTATION
,
R_GE_S_ALL_POLYGONS_WRONG_ORIENTATION
,
R_GE_S_NON_MANIFOLD_VERTEX
,
R_GE_S_SELF_INTERSECTION
,
R_GE_S_MULTIPLE_CONNECTED_COMPONENTS
,
R_SE_ATTRIBUTES_EXISTING
,
R_SE_ATTRIBUTES_CORRECT
R_SE_ATTRIBUTES_EXISTING
,
R_SE_ATTRIBUTES_CORRECT
,
R_SE_ATTRIBUTES_VALID
}
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeInvalidError.java
0 → 100644
View file @
52ac2709
/*-
* Copyright 2023 Hochschule für Technik Stuttgart
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
de.hft.stuttgart.quality.model.types
;
import
de.hft.stuttgart.quality.model.walker.ValidationErrorVisitor
;
public
class
SemanticAttributeInvalidError
extends
AbstractSemanticError
{
private
static
final
long
serialVersionUID
=
6528329813293026972L
;
private
String
childId
;
private
String
attributeName
;
public
String
getChildId
()
{
return
childId
;
}
public
void
setChildId
(
String
childId
)
{
this
.
childId
=
childId
;
}
public
String
getAttributeName
()
{
return
attributeName
;
}
public
void
setAttributeName
(
String
attributeName
)
{
this
.
attributeName
=
attributeName
;
}
@Override
public
void
accept
(
ValidationErrorVisitor
visitor
)
{
super
.
accept
(
visitor
);
visitor
.
visit
(
this
);
}
}
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeMissingError.java
View file @
52ac2709
...
...
@@ -23,7 +23,6 @@ public class SemanticAttributeMissingError extends AbstractSemanticError {
private
String
childId
;
private
String
attributeName
;
private
boolean
generic
;
public
String
getChildId
()
{
return
childId
;
...
...
@@ -41,14 +40,6 @@ public class SemanticAttributeMissingError extends AbstractSemanticError {
this
.
attributeName
=
attributeName
;
}
public
boolean
isGeneric
()
{
return
generic
;
}
public
void
setGeneric
(
boolean
generic
)
{
this
.
generic
=
generic
;
}
@Override
public
void
accept
(
ValidationErrorVisitor
visitor
)
{
super
.
accept
(
visitor
);
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/SemanticAttributeWrongValueError.java
View file @
52ac2709
...
...
@@ -23,7 +23,6 @@ public class SemanticAttributeWrongValueError extends AbstractSemanticError {
private
String
childId
;
private
String
attributeName
;
private
boolean
generic
;
public
String
getChildId
()
{
return
childId
;
...
...
@@ -41,14 +40,6 @@ public class SemanticAttributeWrongValueError extends AbstractSemanticError {
this
.
attributeName
=
attributeName
;
}
public
boolean
isGeneric
()
{
return
generic
;
}
public
void
setGeneric
(
boolean
generic
)
{
this
.
generic
=
generic
;
}
@Override
public
void
accept
(
ValidationErrorVisitor
visitor
)
{
super
.
accept
(
visitor
);
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/Validation.java
View file @
52ac2709
...
...
@@ -19,9 +19,9 @@ import java.time.ZonedDateTime;
import
org.citygml4j.core.model.ade.ADEObject
;
import
org.citygml4j.core.model.core.AbstractFeature
;
import
org.xmlobjects.gml.model.base.Reference
;
import
de.hft.stuttgart.quality.model.properties.StatisticsProperty
;
import
de.hft.stuttgart.quality.model.properties.ValidationPlanProperty
;
public
class
Validation
extends
AbstractFeature
implements
ADEObject
{
...
...
@@ -30,7 +30,7 @@ public class Validation extends AbstractFeature implements ADEObject {
private
ZonedDateTime
validationDate
;
private
String
validationSoftware
;
private
StatisticsProperty
statistics
;
private
ValidationPlanProperty
validationPlan
;
private
Reference
validationPlan
;
public
ZonedDateTime
getValidationDate
()
{
return
validationDate
;
...
...
@@ -56,11 +56,11 @@ public class Validation extends AbstractFeature implements ADEObject {
this
.
statistics
=
asChild
(
statistics
);
}
public
ValidationPlanProperty
getValidationPlan
()
{
public
Reference
getValidationPlan
()
{
return
validationPlan
;
}
public
void
setValidationPlan
(
ValidationPlanProperty
validationPlan
)
{
public
void
setValidationPlan
(
Reference
validationPlan
)
{
this
.
validationPlan
=
asChild
(
validationPlan
);
}
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationPlan.java
View file @
52ac2709
...
...
@@ -18,14 +18,14 @@ package de.hft.stuttgart.quality.model.types;
import
java.util.List
;
import
org.citygml4j.core.model.ade.ADEObject
;
import
org.
xmlobjects.gml.model.GMLObject
;
import
org.
citygml4j.core.model.core.AbstractFeature
;
import
org.xmlobjects.model.ChildList
;
import
de.hft.stuttgart.quality.model.properties.FilterProperty
;
import
de.hft.stuttgart.quality.model.properties.GlobalParametersProperty
;
import
de.hft.stuttgart.quality.model.properties.RequirementProperty
;
public
class
ValidationPlan
extends
GMLObject
implements
ADEObject
{
public
class
ValidationPlan
extends
AbstractFeature
implements
ADEObject
{
private
static
final
long
serialVersionUID
=
434443226848485642L
;
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/types/ValidationResult.java
View file @
52ac2709
...
...
@@ -30,16 +30,16 @@ public class ValidationResult extends GMLObject implements ADEObject {
private
static
final
long
serialVersionUID
=
4867627296196445082L
;
private
Reference
validation
Plan
ID
;
private
Reference
validationID
;
private
List
<
AbstractErrorProperty
>
errors
;
private
ResultType
resultType
;
public
Reference
getValidationPlanID
()
{
return
validation
Plan
ID
;
return
validationID
;
}
public
void
setValidation
Plan
ID
(
Reference
validationPlanID
)
{
this
.
validation
Plan
ID
=
asChild
(
validationPlanID
);
public
void
setValidationID
(
Reference
validationPlanID
)
{
this
.
validationID
=
asChild
(
validationPlanID
);
}
public
List
<
AbstractErrorProperty
>
getErrors
()
{
...
...
citygml4j-quality-ade/src/main/java/de/hft/stuttgart/quality/model/walker/ValidationErrorVisitor.java
View file @
52ac2709
...
...
@@ -37,6 +37,7 @@ import de.hft.stuttgart.quality.model.types.PolygonWrongOrientationError;
import
de.hft.stuttgart.quality.model.types.RingNotClosedError
;
import
de.hft.stuttgart.quality.model.types.RingSelfIntersectionError
;
import
de.hft.stuttgart.quality.model.types.RingTooFewPointsError
;
import
de.hft.stuttgart.quality.model.types.SemanticAttributeInvalidError
;
import
de.hft.stuttgart.quality.model.types.SemanticAttributeMissingError
;
import
de.hft.stuttgart.quality.model.types.SemanticAttributeWrongValueError
;
import
de.hft.stuttgart.quality.model.types.SolidNotClosedError
;
...
...
@@ -65,6 +66,10 @@ public interface ValidationErrorVisitor {
}
default
void
visit
(
SemanticAttributeInvalidError
err
)
{
}
default
void
visit
(
AbstractSolidError
err
)
{
}
...
...
citygml4j-quality-ade/src/main/resources/qualityAde.xsd
View file @
52ac2709
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns=
"http://www.w3.org/2001/XMLSchema"
xmlns:bldg=
"http://www.opengis.net/citygml/building/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:gml=
"http://www.opengis.net/gml"
xmlns:qual=
"https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/
0.1.4
"
elementFormDefault=
"qualified"
targetNamespace=
"https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/
0.1.4
"
version=
"
0.1.4
"
>
<?xml version="1.0" encoding="UTF-8"?>
<schema
xmlns=
"http://www.w3.org/2001/XMLSchema"
xmlns:bldg=
"http://www.opengis.net/citygml/building/2.0"
xmlns:core=
"http://www.opengis.net/citygml/2.0"
xmlns:gml=
"http://www.opengis.net/gml"
xmlns:qual=
"https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/
1.0.0
"
elementFormDefault=
"qualified"
targetNamespace=
"https://transfer.hft-stuttgart.de/pages/citydoctor/qualityade/
1.0.0
"
version=
"
1.0.0
"
>
<import
namespace=
"http://www.opengis.net/citygml/2.0"
schemaLocation=
"http://schemas.opengis.net/citygml/2.0/cityGMLBase.xsd"
/>
<import
namespace=
"http://www.opengis.net/citygml/building/2.0"
schemaLocation=
"http://schemas.opengis.net/citygml/building/2.0/building.xsd"
/>
<import
namespace=
"http://www.opengis.net/gml"
schemaLocation=
"http://schemas.opengis.net/gml/3.1.1/base/gml.xsd"
/>
...
...
@@ -117,6 +117,9 @@
<element
ref=
"qual:EdgeList"
/>
</sequence>
</complexType>
<simpleType
name=
"Enumeration1Type"
>
<restriction
base=
"string"
/>
</simpleType>
<element
name=
"Error"
substitutionGroup=
"gml:_Object"
type=
"qual:ErrorType"
/>
<complexType
name=
"ErrorType"
>
<sequence>
...
...
@@ -152,6 +155,7 @@
<enumeration
value=
"GE_S_MULTIPLE_CONNECTED_COMPONENTS"
/>
<enumeration
value=
"SE_ATTRIBUTE_WRONG_VALUE"
/>
<enumeration
value=
"SE_ATTRIBUTE_MISSING"
/>
<enumeration
value=
"SE_ATTRIBUTE_INVALID"
/>
</restriction>
</simpleType>
<element
name=
"FeatureStatistics"
substitutionGroup=
"gml:_Object"
type=
"qual:FeatureStatisticsType"
/>
...
...
@@ -541,6 +545,7 @@
<enumeration
value=
"R_GE_S_MULTIPLE_CONNECTED_COMPONENTS"
/>
<enumeration
value=
"R_SE_ATTRIBUTES_EXISTING"
/>
<enumeration
value=
"R_SE_ATTRIBUTES_CORRECT"
/>
<enumeration
value=
"R_SE_ATTRIBUTES_VALID"
/>
</restriction>
</simpleType>
<simpleType
name=
"ResultTypeType"
>
...
...
@@ -558,6 +563,22 @@
<enumeration
value=
"DEGENERATED_RING"
/>
</restriction>
</simpleType>
<element
name=
"SE_ATTRIBUTE_INVALID"
substitutionGroup=
"qual:AbstractSemanticError"
type=
"qual:SE_ATTRIBUTE_INVALIDType"
/>
<complexType
name=
"SE_ATTRIBUTE_INVALIDType"
>
<complexContent>
<extension
base=
"qual:AbstractSemanticErrorType"
>
<sequence>
<element
name=
"childId"
type=
"string"
/>
<element
name=
"attributeName"
type=
"string"
/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType
name=
"SE_ATTRIBUTE_INVALIDPropertyType"
>
<sequence>
<element
ref=
"qual:SE_ATTRIBUTE_INVALID"
/>
</sequence>
</complexType>
<element
name=
"SE_ATTRIBUTE_MISSING"
substitutionGroup=
"qual:AbstractSemanticError"
type=
"qual:SE_ATTRIBUTE_MISSINGType"
/>
<complexType
name=
"SE_ATTRIBUTE_MISSINGType"
>
<complexContent>
...
...
@@ -565,7 +586,6 @@
<sequence>
<element
name=
"childId"
type=
"string"
/>
<element
name=
"attributeName"
type=
"string"
/>
<element
name=
"generic"
type=
"boolean"
/>
</sequence>
</extension>
</complexContent>
...
...
@@ -582,7 +602,6 @@
<sequence>
<element
name=
"childId"
type=
"string"
/>
<element
name=
"attributeName"
type=
"string"
/>
<element
name=
"generic"
type=
"boolean"
/>
</sequence>
</extension>
</complexContent>
...
...
@@ -617,7 +636,7 @@
<element
name=
"validationDate"
type=
"dateTime"
/>
<element
name=
"validationSoftware"
type=
"string"
/>
<element
minOccurs=
"0"
name=
"statistics"
type=
"qual:StatisticsPropertyType"
/>
<element
name=
"validationPlan"
type=
"
qual:ValidationPlanProperty
Type"
/>
<element
name=
"validationPlan
ID
"
type=
"
gml:Reference
Type"
/>
</sequence>
</extension>
</complexContent>
...
...
@@ -628,23 +647,28 @@
</sequence>
<attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</complexType>
<element
name=
"ValidationPlan"
substitutionGroup=
"gml:_
Object
"
type=
"qual:ValidationPlanType"
/>
<element
name=
"ValidationPlan"
substitutionGroup=
"gml:_
Feature
"
type=
"qual:ValidationPlanType"
/>
<complexType
name=
"ValidationPlanType"
>
<sequence>
<element
name=
"globalParameters"
type=
"qual:GlobalParametersPropertyType"
/>
<element
name=
"filter"
type=
"qual:FilterPropertyType"
/>
<element
maxOccurs=
"unbounded"
name=
"requirement"
type=
"qual:RequirementPropertyType"
/>
</sequence>
<complexContent>
<extension
base=
"gml:AbstractFeatureType"
>
<sequence>
<element
name=
"globalParameters"
type=
"qual:GlobalParametersPropertyType"
/>
<element
name=
"filter"
type=
"qual:FilterPropertyType"
/>
<element
maxOccurs=
"unbounded"
name=
"requirement"
type=
"qual:RequirementPropertyType"
/>
</sequence>
</extension>
</complexContent>
</complexType>
<complexType
name=
"ValidationPlanPropertyType"
>
<sequence>
<sequence
minOccurs=
"0"
>
<element
ref=
"qual:ValidationPlan"
/>
</sequence>
<attributeGroup
ref=
"gml:AssociationAttributeGroup"
/>
</complexType>
<element
name=
"ValidationResult"
substitutionGroup=
"gml:_Object"
type=
"qual:ValidationResultType"
/>
<complexType
name=
"ValidationResultType"
>
<sequence>
<element
name=
"validation
Plan
ID"
type=
"
gml:Reference
Type"
/>
<element
name=
"validationID"
type=
"
qual:ValidationProperty
Type"
/>
<element
maxOccurs=
"unbounded"
minOccurs=
"0"
name=
"error"
type=
"qual:AbstractErrorPropertyType"
/>
<element
name=
"resultType"
type=
"qual:ResultTypeType"
/>
</sequence>
...
...
citygml4j-quality-ade/src/test/java/de/hft/stuttgart/quality/QualityAdeTests.java