Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
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
Original file line number Diff line number Diff line change
@@ -0,0 +1,99 @@
/*
* Copyright the State of the Netherlands
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package nl.overheid.aerius.gml.base.source.mobile;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import nl.overheid.aerius.gml.base.AbstractGML2Specific;
import nl.overheid.aerius.gml.base.GMLConversionData;
import nl.overheid.aerius.gml.base.IsGmlProperty;
import nl.overheid.aerius.gml.base.characteristics.GML2SourceCharacteristics;
import nl.overheid.aerius.gml.base.source.IsGmlEmission;
import nl.overheid.aerius.shared.domain.ops.DiurnalVariation;
import nl.overheid.aerius.shared.domain.v2.characteristics.OPSSourceCharacteristics;
import nl.overheid.aerius.shared.domain.v2.characteristics.SourceCharacteristics;
import nl.overheid.aerius.shared.domain.v2.source.OffRoadMobileEmissionSource;
import nl.overheid.aerius.shared.domain.v2.source.offroad.CustomOffRoadMobileSource;
import nl.overheid.aerius.shared.domain.v2.source.offroad.OffRoadMobileSource;
import nl.overheid.aerius.shared.exception.AeriusException;
import nl.overheid.aerius.shared.exception.ImaerExceptionReason;

/**
* Base class for converting OffRoad mobile from GML to internal data object.
*
* @param <T> sub class of the off road mobile source
* @param <S> sub class of the standard off road mobile sub source
*/
public abstract class AbstractGML2OffRoad<T extends IsGmlOffRoadMobileEmissionSource, S extends IsGmlStandardOffRoadMobileBaseSource>
extends AbstractGML2Specific<T, OffRoadMobileEmissionSource> {

private static final Logger LOG = LoggerFactory.getLogger(AbstractGML2OffRoad.class);

private final GML2SourceCharacteristics gml2SourceCharacteristics;

protected AbstractGML2OffRoad(final GMLConversionData conversionData, final GML2SourceCharacteristics gml2SourceCharacteristics) {
super(conversionData);
this.gml2SourceCharacteristics = gml2SourceCharacteristics;
}

@Override
public final OffRoadMobileEmissionSource convert(final T source) throws AeriusException {
final OffRoadMobileEmissionSource emissionSource = new OffRoadMobileEmissionSource();

for (final IsGmlProperty<IsGmlOffRoadMobileSource> offRoadMobileSourceProperty : source.getOffRoadMobileSources()) {
final IsGmlOffRoadMobileSource offRoadMobileSource = offRoadMobileSourceProperty.getProperty();
if (offRoadMobileSource instanceof final IsGmlStandardOffRoadMobileBaseSource standardOffRoad) {
emissionSource.getSubSources().add(convertStandard((S) standardOffRoad));
} else if (offRoadMobileSource instanceof IsGmlCustomOffRoadMobileSource) {
emissionSource.getSubSources().add(convert((IsGmlCustomOffRoadMobileSource) offRoadMobileSource));
} else {
LOG.error("Don't know how to treat offroad mobile source type: {}", offRoadMobileSource.getClass());
throw new AeriusException(ImaerExceptionReason.INTERNAL_ERROR);
}
}

return emissionSource.getSubSources().isEmpty() ? null : emissionSource;
}

/**
* Convert Standard OffRoad source to an {@link OffRoadMobileSource}.
*
* @param standardOffRoad Standard Offroad to convert
* @return Convert object
*/
protected abstract OffRoadMobileSource convertStandard(S standardOffRoad);

@SuppressWarnings("unchecked")
private OffRoadMobileSource convert(final IsGmlCustomOffRoadMobileSource customMobileSource) throws AeriusException {
final CustomOffRoadMobileSource customVehicleEmissionValues = new CustomOffRoadMobileSource();
customVehicleEmissionValues.setDescription(customMobileSource.getDescription());

final SourceCharacteristics characteristics = gml2SourceCharacteristics.fromGML(customMobileSource.getCharacteristics(), null, null);
if (characteristics instanceof final OPSSourceCharacteristics opsCharacteristics) {
opsCharacteristics.setDiurnalVariation(DiurnalVariation.INDUSTRIAL_ACTIVITY);
}
customVehicleEmissionValues.setCharacteristics(characteristics);

for (final IsGmlProperty<IsGmlEmission> emissionProperty : customMobileSource.getEmissions()) {
final IsGmlEmission emission = emissionProperty.getProperty();
customVehicleEmissionValues.getEmissions().put(emission.getSubstance(), emission.getValue());
}

return customVehicleEmissionValues;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package nl.overheid.aerius.gml.base.source.mobile.v31;
package nl.overheid.aerius.gml.base.source.mobile;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package nl.overheid.aerius.gml.base.source.mobile.v40;
package nl.overheid.aerius.gml.base.source.mobile;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package nl.overheid.aerius.gml.base.source.mobile.v40;
package nl.overheid.aerius.gml.base.source.mobile;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package nl.overheid.aerius.gml.base.source.mobile.v40;
package nl.overheid.aerius.gml.base.source.mobile;

public interface IsGmlOffRoadMobileSource {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package nl.overheid.aerius.gml.base.source.mobile.v31;
package nl.overheid.aerius.gml.base.source.mobile;

public interface IsGmlOffRoadVehicleSpecification {

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package nl.overheid.aerius.gml.base.source.mobile.v40;
package nl.overheid.aerius.gml.base.source.mobile;

import java.util.List;

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,12 @@
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see http://www.gnu.org/licenses/.
*/
package nl.overheid.aerius.gml.base.source.mobile.v40;
package nl.overheid.aerius.gml.base.source.mobile;

public interface IsGmlOffRoadVehicleSpecification {
public interface IsGmlStandardOffRoadMobileBaseSource extends IsGmlOffRoadMobileSource {

String getFuelCode();
String getCode();

Integer getLiterFuelPerYear();

}
Original file line number Diff line number Diff line change
Expand Up @@ -16,65 +16,30 @@
*/
package nl.overheid.aerius.gml.base.source.mobile.v31;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import nl.overheid.aerius.gml.base.AbstractGML2Specific;
import nl.overheid.aerius.gml.base.GMLConversionData;
import nl.overheid.aerius.gml.base.GMLLegacyCodeConverter.GMLLegacyCodeType;
import nl.overheid.aerius.gml.base.IsGmlProperty;
import nl.overheid.aerius.gml.base.characteristics.GML2SourceCharacteristics;
import nl.overheid.aerius.gml.base.geo.GML2Geometry;
import nl.overheid.aerius.gml.base.source.IsGmlEmission;
import nl.overheid.aerius.shared.domain.ops.DiurnalVariation;
import nl.overheid.aerius.shared.domain.v2.characteristics.OPSSourceCharacteristics;
import nl.overheid.aerius.shared.domain.v2.characteristics.SourceCharacteristics;
import nl.overheid.aerius.shared.domain.v2.source.OffRoadMobileEmissionSource;
import nl.overheid.aerius.shared.domain.v2.source.offroad.CustomOffRoadMobileSource;
import nl.overheid.aerius.gml.base.source.mobile.AbstractGML2OffRoad;
import nl.overheid.aerius.gml.base.source.mobile.IsGmlOffRoadMobileEmissionSource;
import nl.overheid.aerius.gml.base.source.mobile.IsGmlStandardOffRoadMobileBaseSource;
import nl.overheid.aerius.shared.domain.v2.source.offroad.OffRoadMobileSource;
import nl.overheid.aerius.shared.domain.v2.source.offroad.StandardOffRoadMobileSource;
import nl.overheid.aerius.shared.exception.AeriusException;
import nl.overheid.aerius.shared.exception.ImaerExceptionReason;

/**
*
* Convert GML Off road to internal OffRoad data structure.
*/
public class GML2OffRoad<T extends IsGmlOffRoadMobileEmissionSource> extends AbstractGML2Specific<T, OffRoadMobileEmissionSource> {

private static final Logger LOG = LoggerFactory.getLogger(GML2OffRoad.class);

private final GML2SourceCharacteristics gml2SourceCharacteristics;
private final GML2Geometry gml2Geometry;
public class GML2OffRoad<T extends IsGmlOffRoadMobileEmissionSource> extends AbstractGML2OffRoad<T, IsGmlStandardOffRoadMobileBaseSource> {

/**
* @param conversionData The conversionData to use.
* @param gml2SourceCharacteristics util class
*/
public GML2OffRoad(final GMLConversionData conversionData, final GML2SourceCharacteristics gml2SourceCharacteristics) {
super(conversionData);
this.gml2SourceCharacteristics = gml2SourceCharacteristics;
this.gml2Geometry = new GML2Geometry(conversionData.getSrid());
super(conversionData, gml2SourceCharacteristics);
}

@Override
public OffRoadMobileEmissionSource convert(final T source) throws AeriusException {
final OffRoadMobileEmissionSource emissionSource = new OffRoadMobileEmissionSource();

for (final IsGmlProperty<IsGmlOffRoadMobileSource> offRoadMobileSourceProperty : source.getOffRoadMobileSources()) {
final IsGmlOffRoadMobileSource offRoadMobileSource = offRoadMobileSourceProperty.getProperty();
if (offRoadMobileSource instanceof IsGmlStandardOffRoadMobileSource) {
emissionSource.getSubSources().add(convert((IsGmlStandardOffRoadMobileSource) offRoadMobileSource));
} else if (offRoadMobileSource instanceof IsGmlCustomOffRoadMobileSource) {
emissionSource.getSubSources().add(convert((IsGmlCustomOffRoadMobileSource) offRoadMobileSource));
} else {
LOG.error("Don't know how to treat offroad mobile source type: {}", offRoadMobileSource.getClass());
throw new AeriusException(ImaerExceptionReason.INTERNAL_ERROR);
}
}

return emissionSource.getSubSources().isEmpty() ? null : emissionSource;
}

private OffRoadMobileSource convert(final IsGmlStandardOffRoadMobileSource mobileSource) {
protected OffRoadMobileSource convertStandard(final IsGmlStandardOffRoadMobileBaseSource mobileSource) {
final StandardOffRoadMobileSource vehicleEmissionValues = new StandardOffRoadMobileSource();
vehicleEmissionValues.setDescription(mobileSource.getDescription());
vehicleEmissionValues.setLiterFuelPerYear(mobileSource.getLiterFuelPerYear());
Expand All @@ -91,25 +56,4 @@ private OffRoadMobileSource convert(final IsGmlStandardOffRoadMobileSource mobil

return vehicleEmissionValues;
}

@SuppressWarnings("unchecked")
private OffRoadMobileSource convert(final IsGmlCustomOffRoadMobileSource customMobileSource) throws AeriusException {
final CustomOffRoadMobileSource customVehicleEmissionValues = new CustomOffRoadMobileSource();
customVehicleEmissionValues.setDescription(customMobileSource.getDescription());

final SourceCharacteristics characteristics = gml2SourceCharacteristics.fromGML(
customMobileSource.getCharacteristics(), null, null);
if (characteristics instanceof final OPSSourceCharacteristics opsCharacteristics) {
opsCharacteristics.setDiurnalVariation(DiurnalVariation.INDUSTRIAL_ACTIVITY);
}
customVehicleEmissionValues.setCharacteristics(characteristics);

for (final IsGmlProperty<IsGmlEmission> emissionProperty : customMobileSource.getEmissions()) {
final IsGmlEmission emission = emissionProperty.getProperty();
customVehicleEmissionValues.getEmissions().put(emission.getSubstance(), emission.getValue());
}

return customVehicleEmissionValues;
}

}

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

Loading
Loading