/*
* citygml4j - The Open Source Java API for CityGML
* https://github.com/citygml4j
*
* Copyright 2013-2017 Claus Nagel <claus.nagel@gmail.com>
*
* 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 org.citygml4j.model.citygml.core;
import java.util.ArrayList;
import java.util.List;
import org.citygml4j.model.gml.geometry.AbstractGeometry;
import org.citygml4j.model.gml.geometry.GeometryProperty;
public class LodRepresentation {
private List<GeometryProperty<? extends AbstractGeometry>> lod0Geometry;
private List<GeometryProperty<? extends AbstractGeometry>> lod1Geometry;
private List<GeometryProperty<? extends AbstractGeometry>> lod2Geometry;
private List<GeometryProperty<? extends AbstractGeometry>> lod3Geometry;
private List<GeometryProperty<? extends AbstractGeometry>> lod4Geometry;
public List<GeometryProperty<? extends AbstractGeometry>> getLod0Geometry() {
if (lod0Geometry == null)
lod0Geometry = new ArrayList<GeometryProperty<? extends AbstractGeometry>>();
return lod0Geometry;
}
public List<GeometryProperty<? extends AbstractGeometry>> getLod1Geometry() {
if (lod1Geometry == null)
lod1Geometry = new ArrayList<GeometryProperty<? extends AbstractGeometry>>();
return lod1Geometry;
}
public List<GeometryProperty<? extends AbstractGeometry>> getLod2Geometry() {
if (lod2Geometry == null)
lod2Geometry = new ArrayList<GeometryProperty<? extends AbstractGeometry>>();
return lod2Geometry;
}
public List<GeometryProperty<? extends AbstractGeometry>> getLod3Geometry() {
if (lod3Geometry == null)
lod3Geometry = new ArrayList<GeometryProperty<? extends AbstractGeometry>>();
return lod3Geometry;
}
public List<GeometryProperty<? extends AbstractGeometry>> getLod4Geometry() {
if (lod4Geometry == null)
lod4Geometry = new ArrayList<GeometryProperty<? extends AbstractGeometry>>();
return lod4Geometry;
}
public List<GeometryProperty<? extends AbstractGeometry>> getLodGeometry(int lod) {
switch (lod) {
case 0:
return getLod0Geometry();
case 1:
return getLod1Geometry();
case 2:
return getLod2Geometry();
case 3:
return getLod3Geometry();
case 4:
return getLod4Geometry();
default:
return null;
}
}
public boolean isSetLod0Geometry() {
return lod0Geometry != null && !lod0Geometry.isEmpty();
}
public boolean isSetLod1Geometry() {
return lod1Geometry != null && !lod1Geometry.isEmpty();
}
public boolean isSetLod2Geometry() {
return lod2Geometry != null && !lod2Geometry.isEmpty();
}
public boolean isSetLod3Geometry() {
return lod3Geometry != null && !lod3Geometry.isEmpty();
}
public boolean isSetLod4Geometry() {
return lod4Geometry != null && !lod4Geometry.isEmpty();
}
public boolean isSetLodGeometry(int lod) {
switch (lod) {
case 0:
return isSetLod0Geometry();
case 1:
return isSetLod1Geometry();
case 2:
return isSetLod2Geometry();
case 3:
return isSetLod3Geometry();
case 4:
return isSetLod4Geometry();
default:
return false;
}
}
public boolean hasGeometry() {
return isSetLod0Geometry()
|| isSetLod1Geometry()
|| isSetLod2Geometry()
|| isSetLod3Geometry()
|| isSetLod4Geometry();
}
}