Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improve export of local feature references #10

Closed
wants to merge 3 commits into from
Closed
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Next Next commit
added setter to property types
  • Loading branch information
clausnagel committed Dec 17, 2023

Verified

This commit was signed with the committer’s verified signature. The key has expired.
aicorein aicorein
commit 82ed3d82d31b681f451c704a1fd2e79986b06407
Original file line number Diff line number Diff line change
@@ -29,19 +29,15 @@
import java.util.Optional;

public class SurfaceDataProperty extends Child implements InlineOrByReferenceProperty<SurfaceData<?>> {
private final SurfaceData<?> surfaceData;
private final Reference reference;
private SurfaceData<?> surfaceData;
private Reference reference;

private SurfaceDataProperty(SurfaceData<?> surfaceData) {
Objects.requireNonNull(surfaceData, "The surface data must not be null.");
this.surfaceData = asChild(surfaceData);
reference = null;
setObject(Objects.requireNonNull(surfaceData, "The surface data must not be null."));
}

private SurfaceDataProperty(Reference reference) {
Objects.requireNonNull(reference, "The reference must not be null.");
this.reference = asChild(reference);
surfaceData = null;
setReference(Objects.requireNonNull(reference, "The reference must not be null."));
}

public static SurfaceDataProperty of(SurfaceData<?> surfaceData) {
@@ -57,8 +53,28 @@ public Optional<SurfaceData<?>> getObject() {
return Optional.ofNullable(surfaceData);
}

@Override
public SurfaceDataProperty setObject(SurfaceData<?> surfaceData) {
if (surfaceData != null) {
this.surfaceData = asChild(surfaceData);
reference = null;
}

return this;
}

@Override
public Optional<Reference> getReference() {
return Optional.ofNullable(reference);
}

@Override
public SurfaceDataProperty setReference(Reference reference) {
if (reference != null) {
this.reference = asChild(reference);
surfaceData = null;
}

return this;
}
}
Original file line number Diff line number Diff line change
@@ -30,19 +30,15 @@
import java.util.Optional;

public class TextureImageProperty implements InlineOrByReferenceProperty<ExternalFile>, Serializable {
private final ExternalFile textureImage;
private final Reference reference;
private ExternalFile textureImage;
private Reference reference;

private TextureImageProperty(ExternalFile textureImage) {
Objects.requireNonNull(textureImage, "The texture image must not be null.");
this.textureImage = textureImage;
reference = null;
setObject(Objects.requireNonNull(textureImage, "The texture image must not be null."));
}

private TextureImageProperty(Reference reference) {
Objects.requireNonNull(reference, "The reference must not be null.");
this.reference = reference;
textureImage = null;
setReference(Objects.requireNonNull(reference, "The reference must not be null."));
}

public static TextureImageProperty of(ExternalFile textureImage) {
@@ -58,8 +54,28 @@ public Optional<ExternalFile> getObject() {
return Optional.ofNullable(textureImage);
}

@Override
public TextureImageProperty setObject(ExternalFile textureImage) {
if (textureImage != null) {
this.textureImage = textureImage;
reference = null;
}

return this;
}

@Override
public Optional<Reference> getReference() {
return Optional.ofNullable(reference);
}

@Override
public TextureImageProperty setReference(Reference reference) {
if (reference != null) {
this.reference = reference;
textureImage = null;
}

return this;
}
}
Original file line number Diff line number Diff line change
@@ -25,5 +25,7 @@

public interface InlineOrByReferenceProperty<T extends Referencable> {
Optional<T> getObject();
InlineOrByReferenceProperty<T> setObject(T object);
Optional<Reference> getReference();
InlineOrByReferenceProperty<T> setReference(Reference reference);
}
Original file line number Diff line number Diff line change
@@ -23,4 +23,5 @@

public interface InlineProperty<T extends Referencable> {
T getObject();
InlineProperty<T> setObject(T object);
}
Original file line number Diff line number Diff line change
@@ -30,21 +30,17 @@
import java.util.Optional;

public class AddressProperty extends Property<AddressProperty> implements InlineOrByReferenceProperty<Address> {
private final Address address;
private final Reference reference;
private Address address;
private Reference reference;

private AddressProperty(Name name, Address address) {
super(name, DataType.ADDRESS_PROPERTY);
Objects.requireNonNull(address, "The address must not be null.");
this.address = asChild(address);
reference = null;
setObject(Objects.requireNonNull(address, "The address must not be null."));
}

private AddressProperty(Name name, Reference reference) {
super(name, DataType.ADDRESS_PROPERTY);
Objects.requireNonNull(reference, "The reference must not be null.");
this.reference = asChild(reference);
address = null;
setReference(Objects.requireNonNull(reference, "The reference must not be null."));
}

public static AddressProperty of(Name name, Address address) {
@@ -60,11 +56,31 @@ public Optional<Address> getObject() {
return Optional.ofNullable(address);
}

@Override
public AddressProperty setObject(Address address) {
if (address != null) {
this.address = asChild(address);
reference = null;
}

return this;
}

@Override
public Optional<Reference> getReference() {
return Optional.ofNullable(reference);
}

@Override
public AddressProperty setReference(Reference reference) {
if (reference != null) {
this.reference = asChild(reference);
address = null;
}

return this;
}

@Override
AddressProperty self() {
return this;
Original file line number Diff line number Diff line change
@@ -28,12 +28,11 @@
import java.util.Objects;

public class AppearanceProperty extends Property<AppearanceProperty> implements InlineProperty<Appearance> {
private final Appearance appearance;
private Appearance appearance;

private AppearanceProperty(Name name, Appearance appearance) {
super(name, DataType.APPEARANCE_PROPERTY);
Objects.requireNonNull(appearance, "The appearance must not be null.");
this.appearance = asChild(appearance);
setObject(Objects.requireNonNull(appearance, "The appearance must not be null."));
}

public static AppearanceProperty of(Name name, Appearance appearance) {
@@ -45,6 +44,15 @@ public Appearance getObject() {
return appearance;
}

@Override
public AppearanceProperty setObject(Appearance appearance) {
if (appearance != null) {
this.appearance = asChild(appearance);
}

return this;
}

@Override
AppearanceProperty self() {
return this;
Original file line number Diff line number Diff line change
@@ -30,21 +30,17 @@
import java.util.Optional;

public class FeatureProperty extends Property<FeatureProperty> implements InlineOrByReferenceProperty<Feature> {
private final Feature feature;
private final Reference reference;
private Feature feature;
private Reference reference;

private FeatureProperty(Name name, Feature feature) {
super(name, DataType.FEATURE_PROPERTY);
Objects.requireNonNull(feature, "The feature must not be null.");
this.feature = asChild(feature);
reference = null;
setObject(Objects.requireNonNull(feature, "The feature must not be null."));
}

private FeatureProperty(Name name, Reference reference) {
super(name, DataType.FEATURE_PROPERTY);
Objects.requireNonNull(reference, "The reference must not be null.");
this.reference = asChild(reference);
feature = null;
setReference(Objects.requireNonNull(reference, "The reference must not be null."));
}

public static FeatureProperty of(Name name, Feature feature) {
@@ -60,11 +56,31 @@ public Optional<Feature> getObject() {
return Optional.ofNullable(feature);
}

@Override
public FeatureProperty setObject(Feature feature) {
if (feature != null) {
this.feature = asChild(feature);
reference = null;
}

return this;
}

@Override
public Optional<Reference> getReference() {
return Optional.ofNullable(reference);
}

@Override
public FeatureProperty setReference(Reference reference) {
if (reference != null) {
this.reference = asChild(reference);
feature = null;
}

return this;
}

@Override
FeatureProperty self() {
return this;
Original file line number Diff line number Diff line change
@@ -29,13 +29,12 @@
import java.util.Optional;

public class GeometryProperty extends Property<GeometryProperty> implements InlineProperty<Geometry<?>> {
private final Geometry<?> geometry;
private Geometry<?> geometry;
private String lod;

private GeometryProperty(Name name, Geometry<?> geometry) {
super(name, DataType.GEOMETRY_PROPERTY);
Objects.requireNonNull(geometry, "The geometry must not be null.");
this.geometry = asChild(geometry);
setObject(Objects.requireNonNull(geometry, "The geometry must not be null."));
}

public static GeometryProperty of(Name name, Geometry<?> geometry) {
@@ -47,6 +46,15 @@ public Geometry<?> getObject() {
return geometry;
}

@Override
public GeometryProperty setObject(Geometry<?> geometry) {
if (geometry != null) {
this.geometry = asChild(geometry);
}

return this;
}

public Optional<String> getLod() {
return Optional.ofNullable(lod);
}
Original file line number Diff line number Diff line change
@@ -33,24 +33,20 @@
import java.util.Optional;

public class ImplicitGeometryProperty extends Property<ImplicitGeometryProperty> implements InlineOrByReferenceProperty<ImplicitGeometry> {
private final ImplicitGeometry implicitGeometry;
private final Reference reference;
private ImplicitGeometry implicitGeometry;
private Reference reference;
private List<Double> transformationMatrix;
private Point referencePoint;
private String lod;

private ImplicitGeometryProperty(Name name, ImplicitGeometry implicitGeometry) {
super(name, DataType.IMPLICIT_GEOMETRY_PROPERTY);
Objects.requireNonNull(implicitGeometry, "The implicit geometry must not be null.");
this.implicitGeometry = asChild(implicitGeometry);
reference = null;
setObject(Objects.requireNonNull(implicitGeometry, "The implicit geometry must not be null."));
}

private ImplicitGeometryProperty(Name name, Reference reference) {
super(name, DataType.IMPLICIT_GEOMETRY_PROPERTY);
Objects.requireNonNull(reference, "The reference must not be null.");
this.reference = asChild(reference);
implicitGeometry = null;
setReference(Objects.requireNonNull(reference, "The reference must not be null."));
}

public static ImplicitGeometryProperty of(Name name, ImplicitGeometry implicitGeometry) {
@@ -66,11 +62,31 @@ public Optional<ImplicitGeometry> getObject() {
return Optional.ofNullable(implicitGeometry);
}

@Override
public ImplicitGeometryProperty setObject(ImplicitGeometry implicitGeometry) {
if (implicitGeometry != null) {
this.implicitGeometry = asChild(implicitGeometry);
reference = null;
}

return this;
}

@Override
public Optional<Reference> getReference() {
return Optional.ofNullable(reference);
}

@Override
public ImplicitGeometryProperty setReference(Reference reference) {
if (reference != null) {
this.reference = asChild(reference);
implicitGeometry = null;
}

return this;
}

public Optional<List<Double>> getTransformationMatrix() {
return Optional.ofNullable(transformationMatrix);
}