Skip to content

Package: ObjectPropertyAttributes

ObjectPropertyAttributes

nameinstructionbranchcomplexitylinemethod
ObjectPropertyAttributes(FieldMappingValidator)
M: 0 C: 4
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 2
100%
M: 0 C: 1
100%
initBasicTypeAttribute(Class)
M: 0 C: 12
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 4
100%
M: 0 C: 1
100%
resolve(PropertyInfo, MetamodelBuilder, Class)
M: 4 C: 50
93%
M: 1 C: 5
83%
M: 1 C: 3
75%
M: 0 C: 11
100%
M: 0 C: 1
100%
static {...}
M: 0 C: 1
100%
M: 0 C: 0
100%
M: 0 C: 1
100%
M: 0 C: 1
100%
M: 0 C: 1
100%

Coverage

1: /*
2: * JOPA
3: * Copyright (C) 2024 Czech Technical University in Prague
4: *
5: * This library is free software; you can redistribute it and/or
6: * modify it under the terms of the GNU Lesser General Public
7: * License as published by the Free Software Foundation; either
8: * version 3.0 of the License, or (at your option) any later version.
9: *
10: * This library is distributed in the hope that it will be useful,
11: * but WITHOUT ANY WARRANTY; without even the implied warranty of
12: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
13: * Lesser General Public License for more details.
14: *
15: * You should have received a copy of the GNU Lesser General Public
16: * License along with this library.
17: */
18: package cz.cvut.kbss.jopa.model.metamodel;
19:
20: import cz.cvut.kbss.jopa.model.IRI;
21: import cz.cvut.kbss.jopa.model.annotations.CascadeType;
22: import cz.cvut.kbss.jopa.model.annotations.FetchType;
23: import cz.cvut.kbss.jopa.model.annotations.OWLObjectProperty;
24:
25: class ObjectPropertyAttributes extends PropertyAttributes {
26: ObjectPropertyAttributes(FieldMappingValidator validator) {
27: super(validator);
28: }
29:
30: @Override
31: void resolve(PropertyInfo propertyInfo, MetamodelBuilder metamodelBuilder, Class<?> fieldValueCls) {
32: super.resolve(propertyInfo, metamodelBuilder, fieldValueCls);
33:
34: final OWLObjectProperty oop = propertyInfo.getAnnotation(OWLObjectProperty.class);
35:• assert oop != null;
36:
37: this.persistentAttributeType = Attribute.PersistentAttributeType.OBJECT;
38: this.iri = IRI.create(typeBuilderContext.resolveNamespace(oop.iri()));
39:
40:• if (validator.isValidIdentifierType(fieldValueCls) || fieldValueCls.isEnum()) {
41: initBasicTypeAttribute(fieldValueCls);
42: } else {
43: this.type = metamodelBuilder.getEntityClass(fieldValueCls);
44: this.cascadeTypes = oop.cascade();
45: this.fetchType = oop.fetch();
46: }
47: }
48:
49: private void initBasicTypeAttribute(Class<?> targetType) {
50: this.type = BasicTypeImpl.get(targetType);
51: this.cascadeTypes = new CascadeType[0];
52: this.fetchType = FetchType.EAGER;
53: }
54: }