Commit 549ccad2 authored by Kai-Holger Brassel's avatar Kai-Holger Brassel
Browse files

City Units with UOM/Indriya imported via custom P2 repo.

(Tests not working yet)
parent 2ee5526a
Showing with 909 additions and 0 deletions
+909 -0
package de.hftstuttgart.cityunits.model;
import java.text.NumberFormat;
import java.text.ParseException;
import java.util.Locale;
import java.util.Optional;
import javax.measure.Quantity;
import javax.measure.Unit;
import tech.units.indriya.format.SimpleQuantityFormat;
import tech.units.indriya.quantity.Quantities;
/**
* A <code>NullableQuantity</code> wraps a <code>javax.measure.Quantity</code> having
* a numerical value that is either a <code>Double</code>, a <code>Long</code>,
* or <code>null</code>. The latter case represents an unknown numerical
* value of a specific unit. On the other hand, the <code>javax.measure.Unit</code>
* of the quantity is always defined.
*/
public class NullableQuantity {
static {
// TODO Implement specific QuantityFormat to enable custom number format?
// ensure that editing, (de)serialization and default values of units all work
// with the same number format (Decimal point etc.)
Locale.setDefault(Locale.ENGLISH);
// specific additional units for urban simulation like TON (t), PARTS_PER_MILLION (ppm), DECIBEL (dB)
UrbanSimulationUnits.getInstance();
}
public static NullableQuantity create(String str) {
NullableQuantity newNullableQuantity = null;
try {
NumberFormat.getInstance().parse(str);
newNullableQuantity = new NullableQuantity(str);
} catch (final ParseException ex) { // no number value present: create NullQuantity just with unit
try {
NullableQuantity dummy = new NullableQuantity("1 " + str); //$NON-NLS-1$
newNullableQuantity = new NullQuantity(dummy.getUnit());
} catch (final IllegalArgumentException ex1) { // Unit could not be parsed
System.out.println("Unit '" + str + "' could not be parsed!"); //TODO
ex.printStackTrace();
}
} catch (final IllegalArgumentException ex) { // Quantity could not be parsed
System.out.println("Quantity '" + str + "' could not be parsed!"); //TODO
ex.printStackTrace();
}
return newNullableQuantity;
}
public static NullableQuantity create(Number number, Unit<?> unit) {
return number == null ? new NullQuantity(unit) : new NullableQuantity(number, unit);
}
private final Quantity<?> quantity;
private NullableQuantity(String str) {
quantity = Quantities.getQuantity(str);
}
private NullableQuantity(Number number, Unit<?> unit) {
quantity = Quantities.getQuantity(number, unit);
}
/**
* In case of an unknown numerical value of the quantity an empty <code>Optional</code> is returned via subclass.
* @return the wrapped <code>javax.measure.Quantity</code> if its numerical value is present
*/
public Optional<Quantity<?>> getQuantity() {
return Optional.of(quantity);
}
/**
* @return numerical value of the wrapped <code>javax.measure.Quantity</code> if present
*/
public Optional<Number> getNumber() {
return getQuantity().map(Quantity::getValue);
}
public Unit<?> getUnit() {
return quantity.getUnit();
}
@Override
public String toString() {
return SimpleQuantityFormat.getInstance().format(quantity);
}
private static class NullQuantity extends NullableQuantity {
public NullQuantity(Unit<?> unit) {
super(1, unit);
}
public Optional<Quantity<?>> getQuantity() {
return Optional.empty();
}
@Override
public String toString() {
return "<unknown> " + getUnit().toString();
}
}
}
package de.hftstuttgart.cityunits.model;
import java.math.BigInteger;
import javax.measure.Dimension;
import javax.measure.Quantity;
import javax.measure.Unit;
import javax.measure.quantity.Dimensionless;
import javax.measure.quantity.Mass;
import javax.measure.spi.SystemOfUnits;
import tech.units.indriya.AbstractSystemOfUnits;
import tech.units.indriya.AbstractUnit;
import tech.units.indriya.format.SimpleUnitFormat;
import tech.units.indriya.function.LogConverter;
import tech.units.indriya.function.MultiplyConverter;
import tech.units.indriya.unit.AlternateUnit;
import tech.units.indriya.unit.BaseUnit;
import tech.units.indriya.unit.TransformedUnit;
import tech.units.indriya.unit.UnitDimension;
import tech.units.indriya.unit.Units;
public class UrbanSimulationUnits extends AbstractSystemOfUnits
{
private static final UrbanSimulationUnits INSTANCE = new UrbanSimulationUnits();
@Override
public String getName() {
return getClass().getSimpleName();
}
public static final Unit<Dimensionless> PARTS_PER_MILLION = addUnit(new TransformedUnit<>(AbstractUnit.ONE,
MultiplyConverter.ofRational(BigInteger.ONE, BigInteger.valueOf(1000000))));
public static final Unit<Dimensionless> DECIBEL = addUnit(AbstractUnit.ONE.transform(
new LogConverter(10).inverse().concatenate(MultiplyConverter.ofRational(BigInteger.ONE, BigInteger.TEN))));
public static final Unit<Mass> TON = addUnit(Units.KILOGRAM.multiply(1000));
public static final Unit<Intensity> IRRADIANCE = addUnit(
new AlternateUnit<Intensity>(Units.WATT.divide(Units.SQUARE_METRE), "W/m2"));
// To model costs I added monetary units quick and dirty as SI base units. According to JavaDoc of AbstractUnit,
// monetary units should rather be implemented in an extra type hierarchy below ComparableUnit.
public final static Dimension MONEY_DIMENSION = UnitDimension.parse('M');
public final static Unit<Euro> EURO = new BaseUnit<Euro>("€", MONEY_DIMENSION);
public final static Unit<Dollar> DOLLAR = new BaseUnit<Dollar>("$", MONEY_DIMENSION);
static {
SimpleUnitFormat.getInstance().label(TON, "t");
SimpleUnitFormat.getInstance().label(DECIBEL, "dB");
SimpleUnitFormat.getInstance().label(PARTS_PER_MILLION, "ppm");
SimpleUnitFormat.getInstance().label(EURO, "€");
SimpleUnitFormat.getInstance().label(DOLLAR, "$");
}
/**
* Returns the unique instance of this class.
*
* @return the Units instance.
*/
public static SystemOfUnits getInstance() {
return INSTANCE;
}
/**
* Adds a new unit not mapped to any specified quantity type.
*
* @param unit the unit being added.
* @return <code>unit</code>.
*/
private static <U extends Unit<?>> U addUnit(U unit) {
INSTANCE.units.add(unit);
return unit;
}
/**
* Adds a new unit and maps it to the specified quantity type.
*
* @param unit the unit being added.
* @param type the quantity type.
* @return <code>unit</code>.
*/
private static <U extends AbstractUnit<?>> U addUnit(U unit, Class<? extends Quantity<?>> type) {
INSTANCE.units.add(unit);
INSTANCE.quantityToUnit.put(type, unit);
return unit;
}
}
package de.hftstuttgart.cityunits.model;
import javax.measure.Quantity;
/**
* Define Volumetric Flow Rate type (basic unit is m^3/s).
*/
public interface VolumetricFlowRate extends Quantity<VolumetricFlowRate>
{
}
\ No newline at end of file
/**
*/
package de.hftstuttgart.cityunits.model.quantities;
import org.eclipse.emf.ecore.EFactory;
/**
* <!-- begin-user-doc -->
* The <b>Factory</b> for the model.
* It provides a create method for each non-abstract class of the model.
* <!-- end-user-doc -->
* @see de.hftstuttgart.cityunits.model.quantities.QuantitiesPackage
* @generated
*/
public interface QuantitiesFactory extends EFactory {
/**
* The singleton instance of the factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
QuantitiesFactory eINSTANCE = de.hftstuttgart.cityunits.model.quantities.impl.QuantitiesFactoryImpl.init();
/**
* Returns the package supported by this factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the package supported by this factory.
* @generated
*/
QuantitiesPackage getQuantitiesPackage();
} //QuantitiesFactory
/**
*/
package de.hftstuttgart.cityunits.model.quantities;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EPackage;
/**
* <!-- begin-user-doc -->
* The <b>Package</b> for the model.
* It contains accessors for the meta objects to represent
* <ul>
* <li>each class,</li>
* <li>each feature of each class,</li>
* <li>each operation of each class,</li>
* <li>each enum,</li>
* <li>and each data type</li>
* </ul>
* <!-- end-user-doc -->
* @see de.hftstuttgart.cityunits.model.quantities.QuantitiesFactory
* @model kind="package"
* @generated
*/
public interface QuantitiesPackage extends EPackage {
/**
* The package name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
String eNAME = "quantities";
/**
* The package namespace URI.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
String eNS_URI = "https://www.hft-stuttgart.de/quantities";
/**
* The package namespace name.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
String eNS_PREFIX = "quant";
/**
* The singleton instance of the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
QuantitiesPackage eINSTANCE = de.hftstuttgart.cityunits.model.quantities.impl.QuantitiesPackageImpl.init();
/**
* The meta object id for the '<em>Quantity Double</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see de.hft-stuttgart.cityunits.NullableQuantity
* @see de.hft-stuttgart.cityunits.quantities.impl.QuantitiesPackageImpl#getQuantityDouble()
* @generated
*/
int QUANTITY_DOUBLE = 0;
/**
* The meta object id for the '<em>Quantity Long</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see de.hft-stuttgart.cityunits.NullableQuantity
* @see de.hft-stuttgart.cityunits.quantities.impl.QuantitiesPackageImpl#getQuantityLong()
* @generated
*/
int QUANTITY_LONG = 1;
/**
* Returns the meta object for data type '{@link de.hft-stuttgart.cityunits.NullableQuantity <em>Quantity Double</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for data type '<em>Quantity Double</em>'.
* @see de.hft-stuttgart.cityunits.NullableQuantity
* @model instanceClass="de.hft-stuttgart.cityunits.NullableQuantity"
* @generated
*/
EDataType getQuantityDouble();
/**
* Returns the meta object for data type '{@link de.hft-stuttgart.cityunits.NullableQuantity <em>Quantity Long</em>}'.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the meta object for data type '<em>Quantity Long</em>'.
* @see de.hft-stuttgart.cityunits.NullableQuantity
* @model instanceClass="de.hft-stuttgart.cityunits.NullableQuantity"
* @generated
*/
EDataType getQuantityLong();
/**
* Returns the factory that creates the instances of the model.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @return the factory that creates the instances of the model.
* @generated
*/
QuantitiesFactory getQuantitiesFactory();
/**
* <!-- begin-user-doc -->
* Defines literals for the meta objects that represent
* <ul>
* <li>each class,</li>
* <li>each feature of each class,</li>
* <li>each operation of each class,</li>
* <li>each enum,</li>
* <li>and each data type</li>
* </ul>
* <!-- end-user-doc -->
* @generated
*/
interface Literals {
/**
* The meta object literal for the '<em>Quantity Double</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see de.hft-stuttgart.cityunits.NullableQuantity
* @see de.hft-stuttgart.cityunits.quantities.impl.QuantitiesPackageImpl#getQuantityDouble()
* @generated
*/
EDataType QUANTITY_DOUBLE = eINSTANCE.getQuantityDouble();
/**
* The meta object literal for the '<em>Quantity Long</em>' data type.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see de.hft-stuttgart.cityunits.NullableQuantity
* @see de.hft-stuttgart.cityunits.quantities.impl.QuantitiesPackageImpl#getQuantityLong()
* @generated
*/
EDataType QUANTITY_LONG = eINSTANCE.getQuantityLong();
}
} //QuantitiesPackage
/**
*/
package de.hftstuttgart.cityunits.model.quantities.impl;
import de.hftstuttgart.cityunits.model.NullableQuantity;
import de.hftstuttgart.cityunits.model.quantities.*;
import org.eclipse.emf.ecore.EClass;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EFactoryImpl;
import org.eclipse.emf.ecore.plugin.EcorePlugin;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Factory</b>.
* <!-- end-user-doc -->
* @generated
*/
public class QuantitiesFactoryImpl extends EFactoryImpl implements QuantitiesFactory {
/**
* Creates the default factory implementation.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public static QuantitiesFactory init() {
try {
QuantitiesFactory theQuantitiesFactory = (QuantitiesFactory)EPackage.Registry.INSTANCE.getEFactory(QuantitiesPackage.eNS_URI);
if (theQuantitiesFactory != null) {
return theQuantitiesFactory;
}
}
catch (Exception exception) {
EcorePlugin.INSTANCE.log(exception);
}
return new QuantitiesFactoryImpl();
}
/**
* Creates an instance of the factory.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public QuantitiesFactoryImpl() {
super();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public EObject create(EClass eClass) {
switch (eClass.getClassifierID()) {
default:
throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier");
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public Object createFromString(EDataType eDataType, String initialValue) {
switch (eDataType.getClassifierID()) {
case QuantitiesPackage.QUANTITY_DOUBLE:
return createQuantityDoubleFromString(eDataType, initialValue);
case QuantitiesPackage.QUANTITY_LONG:
return createQuantityLongFromString(eDataType, initialValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
@Override
public String convertToString(EDataType eDataType, Object instanceValue) {
switch (eDataType.getClassifierID()) {
case QuantitiesPackage.QUANTITY_DOUBLE:
return convertQuantityDoubleToString(eDataType, instanceValue);
case QuantitiesPackage.QUANTITY_LONG:
return convertQuantityLongToString(eDataType, instanceValue);
default:
throw new IllegalArgumentException("The datatype '" + eDataType.getName() + "' is not a valid classifier");
}
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NullableQuantity createQuantityDoubleFromString(EDataType eDataType, String initialValue) {
return (NullableQuantity)super.createFromString(eDataType, initialValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertQuantityDoubleToString(EDataType eDataType, Object instanceValue) {
return super.convertToString(eDataType, instanceValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public NullableQuantity createQuantityLongFromString(EDataType eDataType, String initialValue) {
return (NullableQuantity)super.createFromString(eDataType, initialValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public String convertQuantityLongToString(EDataType eDataType, Object instanceValue) {
return super.convertToString(eDataType, instanceValue);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public QuantitiesPackage getQuantitiesPackage() {
return (QuantitiesPackage)getEPackage();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @deprecated
* @generated
*/
@Deprecated
public static QuantitiesPackage getPackage() {
return QuantitiesPackage.eINSTANCE;
}
} //QuantitiesFactoryImpl
/**
*/
package de.hftstuttgart.cityunits.model.quantities.impl;
import de.hftstuttgart.cityunits.model.NullableQuantity;
import de.hftstuttgart.cityunits.model.quantities.QuantitiesFactory;
import de.hftstuttgart.cityunits.model.quantities.QuantitiesPackage;
import org.eclipse.emf.ecore.EDataType;
import org.eclipse.emf.ecore.EPackage;
import org.eclipse.emf.ecore.impl.EPackageImpl;
/**
* <!-- begin-user-doc -->
* An implementation of the model <b>Package</b>.
* <!-- end-user-doc -->
* @generated
*/
public class QuantitiesPackageImpl extends EPackageImpl implements QuantitiesPackage {
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType quantityDoubleEDataType = null;
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private EDataType quantityLongEDataType = null;
/**
* Creates an instance of the model <b>Package</b>, registered with
* {@link org.eclipse.emf.ecore.EPackage.Registry EPackage.Registry} by the package
* package URI value.
* <p>Note: the correct way to create the package is via the static
* factory method {@link #init init()}, which also performs
* initialization of the package, or returns the registered package,
* if one already exists.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see org.eclipse.emf.ecore.EPackage.Registry
* @see de.hftstuttgart.cityunits.quantities.QuantitiesPackage#eNS_URI
* @see #init()
* @generated
*/
private QuantitiesPackageImpl() {
super(eNS_URI, QuantitiesFactory.eINSTANCE);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private static boolean isInited = false;
/**
* Creates, registers, and initializes the <b>Package</b> for this model, and for any others upon which it depends.
*
* <p>This method is used to initialize {@link QuantitiesPackage#eINSTANCE} when that field is accessed.
* Clients should not invoke it directly. Instead, they should simply access that field to obtain the package.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @see #eNS_URI
* @see #createPackageContents()
* @see #initializePackageContents()
* @generated
*/
public static QuantitiesPackage init() {
if (isInited) return (QuantitiesPackage)EPackage.Registry.INSTANCE.getEPackage(QuantitiesPackage.eNS_URI);
// Obtain or create and register package
Object registeredQuantitiesPackage = EPackage.Registry.INSTANCE.get(eNS_URI);
QuantitiesPackageImpl theQuantitiesPackage = registeredQuantitiesPackage instanceof QuantitiesPackageImpl ? (QuantitiesPackageImpl)registeredQuantitiesPackage : new QuantitiesPackageImpl();
isInited = true;
// Create package meta-data objects
theQuantitiesPackage.createPackageContents();
// Initialize created meta-data
theQuantitiesPackage.initializePackageContents();
// Mark meta-data to indicate it can't be changed
theQuantitiesPackage.freeze();
// Update the registry and return the package
EPackage.Registry.INSTANCE.put(QuantitiesPackage.eNS_URI, theQuantitiesPackage);
return theQuantitiesPackage;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getQuantityDouble() {
return quantityDoubleEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public EDataType getQuantityLong() {
return quantityLongEDataType;
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public QuantitiesFactory getQuantitiesFactory() {
return (QuantitiesFactory)getEFactoryInstance();
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isCreated = false;
/**
* Creates the meta-model objects for the package. This method is
* guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void createPackageContents() {
if (isCreated) return;
isCreated = true;
// Create data types
quantityDoubleEDataType = createEDataType(QUANTITY_DOUBLE);
quantityLongEDataType = createEDataType(QUANTITY_LONG);
}
/**
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
private boolean isInitialized = false;
/**
* Complete the initialization of the package and its meta-model. This
* method is guarded to have no affect on any invocation but its first.
* <!-- begin-user-doc -->
* <!-- end-user-doc -->
* @generated
*/
public void initializePackageContents() {
if (isInitialized) return;
isInitialized = true;
// Initialize package
setName(eNAME);
setNsPrefix(eNS_PREFIX);
setNsURI(eNS_URI);
// Initialize data types
initEDataType(quantityDoubleEDataType, NullableQuantity.class, "QuantityDouble", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
initEDataType(quantityLongEDataType, NullableQuantity.class, "QuantityLong", IS_SERIALIZABLE, !IS_GENERATED_INSTANCE_CLASS);
// Create resource
createResource(eNS_URI);
}
} //QuantitiesPackageImpl
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>de.hft-stuttgart.cityunits.p2site</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.pde.UpdateSiteBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.pde.UpdateSiteNature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8"?>
<site>
<feature id="de.hft-stuttgart.cityunits.feature">
<category name="de.hft-stuttgart.cityunits"/>
</feature>
<category-def name="de.hft-stuttgart.cityunits" label="HfT Stuttgart City Units">
<description>
Introduce Ecore types for modeling quantities with units of mesurement (JSR-385). Add also units especially useful for urban simulation.
</description>
</category-def>
</site>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>de.hft-stuttgart.cityunits.p2site</artifactId>
<packaging>eclipse-repository</packaging>
<name>City Units P2 Site Generation</name>
<parent>
<groupId>de.hft-stuttgart</groupId>
<artifactId>de.hft-stuttgart.cityunits</artifactId>
<version>1.0.0</version>
</parent>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<site>
<feature url="features/de.hft-stuttgart.cityunits.feature_1.0.0.jar" id="de.hft-stuttgart.cityunits.feature" version="1.0.0">
<category name="de.hft-stuttgart.cityunits"/>
</feature>
<category-def name="de.hft-stuttgart.cityunits" label="HfT Stuttgart City Units">
<description>
Introduce Ecore types for modeling quantities with units of mesurement (JSR-385). Add also units especially useful for urban simulation.
</description>
</category-def>
</site>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>de.hft-stuttgart.cityunits.target</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
</natures>
</projectDescription>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<?pde version="3.8"?>
<target name="RCP, EMF Forms 2020-09">
<locations>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
<repository location="http://download.eclipse.org/releases/2020-09"/>
<unit id="org.eclipse.equinox.sdk.feature.group" version="3.20.300.v20200828-1034"/>
<unit id="org.eclipse.e4.rcp.feature.group" version="4.17.0.v20200831-1002"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
<repository location="http://download.eclipse.org/ecp/releases/releases_target_125/"/>
<unit id="org.eclipse.emf.ecp.emfforms.sdk.feature.feature.group" version="0.0.0"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
<repository location="https://transfer.hft-stuttgart.de/pages/indriya-p2/release_target_211/"/>
<unit id="de.hft-stuttgart.indriya.feature.feature.group" version="1.0.0"/>
</location>
<location includeAllPlatforms="false" includeConfigurePhase="false" includeMode="planner" includeSource="false" type="InstallableUnit">
<repository location="https://download.eclipse.org/tools/orbit/downloads/2020-09/"/>
<unit id="org.junit" version="4.13.0.v20200204-1500"/>
<unit id="org.junit.jupiter.api" version="5.6.0.v20200203-2009"/>
</location>
</locations>
</target>
\ No newline at end of file
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>de.hft-stuttgart.cityunits.target</artifactId>
<packaging>eclipse-target-definition</packaging>
<name>City Units Target Definition</name>
<parent>
<groupId>de.hft-stuttgart</groupId>
<artifactId>de.hft-stuttgart.cityunits</artifactId>
<version>1.0.0</version>
</parent>
</project>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER">
<attributes>
<attribute name="maven.pomderived" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="src" path="src/">
<attributes>
<attribute name="test" value="true"/>
</attributes>
</classpathentry>
<classpathentry kind="output" path="target/classes"/>
</classpath>
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>de.hft-stuttgart.cityunits.tests</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.m2e.core.maven2Builder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.m2e.core.maven2Nature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Tests
Bundle-SymbolicName: de.hft-stuttgart.cityunits.tests
Bundle-Version: 1.0.0
Automatic-Module-Name: de.hft.stuttgart.cityunits.tests
Import-Package: de.hftstuttgart.cityunits.model,
org.junit;version="4.13.0",
org.junit.jupiter.api;version="5.6.0"
Require-Bundle: javax.measure.unit-api,
tech.units.indriya
source.. = src/
output.. = bin/
bin.includes = META-INF/,\
.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<artifactId>de.hft-stuttgart.cityunits.tests</artifactId>
<packaging>eclipse-test-plugin</packaging>
<name>City Units Target Definition</name>
<parent>
<groupId>de.hft-stuttgart</groupId>
<artifactId>de.hft-stuttgart.cityunits</artifactId>
<version>1.0.0</version>
</parent>
</project>
\ No newline at end of file
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment