diff --git a/build.gradle b/build.gradle index d38838f..58baa2e 100644 --- a/build.gradle +++ b/build.gradle @@ -2,11 +2,11 @@ apply plugin: 'java' apply plugin: 'jacoco' apply plugin: 'eclipse' -sourceCompatibility = 1.7 +sourceCompatibility = 1.6 group = 'org.beyene' archivesBaseName = 'sius' -version = '0.2.0-SNAPSHOT' +version = '0.3.0' sourceSets { main { diff --git a/build.gradle.deploy b/build.gradle.deploy index f0efe4d..06d4229 100644 --- a/build.gradle.deploy +++ b/build.gradle.deploy @@ -4,11 +4,11 @@ apply plugin: 'eclipse' apply plugin: 'maven' apply plugin: 'signing' -sourceCompatibility = 1.7 +sourceCompatibility = 1.6 group = 'org.beyene' archivesBaseName = 'sius' -version = '0.2.0-SNAPSHOT' +version = '0.3.0' sourceSets { main { diff --git a/pom.xml b/pom.xml index bf9c942..e4d9be2 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 org.beyene sius - 0.2.0-SNAPSHOT + 0.3.0 jar ${project.groupId}:${project.artifactId} S.I. Unit System Conversion Library @@ -12,6 +12,7 @@ UTF-8 UTF-8 + 1.6 2014 @@ -45,8 +46,8 @@ maven-compiler-plugin 2.3.2 - 1.7 - 1.7 + ${java.version} + ${java.version} @@ -168,4 +169,4 @@ test - + \ No newline at end of file diff --git a/src/main/java/org/beyene/sius/cache/Caches.java b/src/main/java/org/beyene/sius/cache/Caches.java index fd48868..9200e9c 100644 --- a/src/main/java/org/beyene/sius/cache/Caches.java +++ b/src/main/java/org/beyene/sius/cache/Caches.java @@ -25,7 +25,7 @@ public final class Caches { - private static Map providers = new ConcurrentHashMap<>(); + private static Map providers = new ConcurrentHashMap(); private static String DEFAULT_PROVIDER_NAME = ""; static { diff --git a/src/main/java/org/beyene/sius/cache/SimpleProvider.java b/src/main/java/org/beyene/sius/cache/SimpleProvider.java index 858c417..f36fe82 100644 --- a/src/main/java/org/beyene/sius/cache/SimpleProvider.java +++ b/src/main/java/org/beyene/sius/cache/SimpleProvider.java @@ -25,6 +25,6 @@ final class SimpleProvider implements Provider { @Override public , B extends Unit, U extends Unit> Cache newInstance( UnitId id, int capacity) { - return new SimpleCache<>(capacity); + return new SimpleCache(capacity); } } \ No newline at end of file diff --git a/src/main/java/org/beyene/sius/example/Example.java b/src/main/java/org/beyene/sius/example/Example.java index 38a7dd7..aecd4b2 100644 --- a/src/main/java/org/beyene/sius/example/Example.java +++ b/src/main/java/org/beyene/sius/example/Example.java @@ -17,6 +17,7 @@ package org.beyene.sius.example; import java.util.Arrays; +import java.util.List; import org.beyene.sius.dimension.Length; import org.beyene.sius.dimension.Mass; @@ -82,7 +83,9 @@ public static void main(String[] args) { Inch inch = Operation.convert(foot, UnitIdentifier.INCH); System.out.println(String.format("Converted %s to %s", foot, inch)); - System.out.println(String.format("Summands \t= %s", Arrays.>asList(FactoryLength.meter(1000), FactoryLength.mile(1), FactoryLength.meter(1000)).toString())); + @SuppressWarnings("unchecked") + List> lengths = Arrays.>asList(FactoryLength.meter(1000), FactoryLength.mile(1), FactoryLength.meter(1000)); + System.out.println(String.format("Summands \t= %s", lengths.toString())); System.out.println("Sum \t\t= " + Operation.add(FactoryLength.meter(1000), FactoryLength.mile(1), FactoryLength.meter(1000))); Adder adder = FunctorFactory.sum(UnitIdentifier.METER) @@ -101,21 +104,6 @@ public static void main(String[] args) { System.out.println(adder); System.out.println(adder.apply()); - Meter sameRes = Operation.add(UnitIdentifier.METER, - lengthSecond, - lengthSecond, - lengthSecond, - lengthSecond, - lengthSecond, - lengthSecond, - lengthSecond, - lengthSecond, - lengthSecond, - lengthSecond, - foot, - foot); - System.out.println(sameRes); - ArithmeticMean mean = FunctorFactory.mean(UnitIdentifier.KILOGRAM) .op(FactoryMass.kg(10)) .op(FactoryMass.kg(100)) diff --git a/src/main/java/org/beyene/sius/operation/Operation.java b/src/main/java/org/beyene/sius/operation/Operation.java index 36449bb..b9c8431 100644 --- a/src/main/java/org/beyene/sius/operation/Operation.java +++ b/src/main/java/org/beyene/sius/operation/Operation.java @@ -19,8 +19,6 @@ import org.beyene.sius.dimension.Dimension; import org.beyene.sius.dimension.composition.util.Fraction; import org.beyene.sius.dimension.composition.util.Product; -import org.beyene.sius.operation.functor.Adder; -import org.beyene.sius.operation.functor.FunctorFactory; import org.beyene.sius.unit.Unit; import org.beyene.sius.unit.UnitFactory; import org.beyene.sius.unit.UnitId; @@ -98,30 +96,6 @@ public static , B extends Unit, OP1 extends Unit + Converter.convert(op2, op1.getIdentifier()).getValue()); } - /** - * Adds (different) units of the same dimension. - * - * @param targetId - * resulting unit - * @param op - * first operand - * @param ops - * further operands - * @return sum - * - * @param dimension - * @param base unit of dimension - * @param first operands unit - * @param target unit - */ - @SafeVarargs - public static , B extends Unit, OP extends Unit, TARGET_UNIT extends Unit> TARGET_UNIT add( - UnitId targetId, OP op, Unit... ops) { - Adder adder = FunctorFactory.sum(targetId).op(op); - for (Unit o : ops) - adder.op(o); - return adder.apply(); - } /** * Subtracts two (different) units of the same dimension. Result is of same diff --git a/src/main/java/org/beyene/sius/operation/functor/AbstractFunctor.java b/src/main/java/org/beyene/sius/operation/functor/AbstractFunctor.java index ee1144c..a8d4083 100644 --- a/src/main/java/org/beyene/sius/operation/functor/AbstractFunctor.java +++ b/src/main/java/org/beyene/sius/operation/functor/AbstractFunctor.java @@ -28,7 +28,7 @@ abstract class AbstractFunctor, B extends Unit, private final String functionName; protected final UnitId targetId; - protected final List> operands = new LinkedList<>(); + protected final List> operands = new LinkedList>(); protected TARGET_UNIT cachedResult; public AbstractFunctor(UnitId targetId, String functionName) { diff --git a/src/main/java/org/beyene/sius/unit/UnitFactory.java b/src/main/java/org/beyene/sius/unit/UnitFactory.java index 3def7db..632e5af 100644 --- a/src/main/java/org/beyene/sius/unit/UnitFactory.java +++ b/src/main/java/org/beyene/sius/unit/UnitFactory.java @@ -29,7 +29,7 @@ public final class UnitFactory { - private static final Map, Unit> instanceMapMutable = new HashMap<>(); + private static final Map, Unit> instanceMapMutable = new HashMap, Unit>(); /* initialize map */ static { diff --git a/src/main/java/org/beyene/sius/unit/impl/CelsiusImpl.java b/src/main/java/org/beyene/sius/unit/impl/CelsiusImpl.java index 81e5866..78b1498 100644 --- a/src/main/java/org/beyene/sius/unit/impl/CelsiusImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/CelsiusImpl.java @@ -39,7 +39,7 @@ final class CelsiusImpl extends AbstractUnit imple int sizeStatic = Preferences.getInt("celsius.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("celsius.cache.static.low", 0), sizeStatic, CelsiusImpl.class); + staticCache = new StaticCache(Preferences.getInt("celsius.cache.static.low", 0), sizeStatic, CelsiusImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/FahrenheitImpl.java b/src/main/java/org/beyene/sius/unit/impl/FahrenheitImpl.java index 819b0a4..be69a0a 100644 --- a/src/main/java/org/beyene/sius/unit/impl/FahrenheitImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/FahrenheitImpl.java @@ -39,7 +39,7 @@ final class FahrenheitImpl extends AbstractUnit int sizeStatic = Preferences.getInt("fahrenheit.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("fahrenheit.cache.static.low", 0), sizeStatic, FahrenheitImpl.class); + staticCache = new StaticCache(Preferences.getInt("fahrenheit.cache.static.low", 0), sizeStatic, FahrenheitImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/FootImpl.java b/src/main/java/org/beyene/sius/unit/impl/FootImpl.java index 934f005..01d6e93 100644 --- a/src/main/java/org/beyene/sius/unit/impl/FootImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/FootImpl.java @@ -39,7 +39,7 @@ final class FootImpl extends AbstractUnit implements Foot { int sizeStatic = Preferences.getInt("foot.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("foot.cache.static.low", 0), sizeStatic, FootImpl.class); + staticCache = new StaticCache(Preferences.getInt("foot.cache.static.low", 0), sizeStatic, FootImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/HourImpl.java b/src/main/java/org/beyene/sius/unit/impl/HourImpl.java index 29977be..71ff9e8 100644 --- a/src/main/java/org/beyene/sius/unit/impl/HourImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/HourImpl.java @@ -39,7 +39,7 @@ final class HourImpl extends AbstractUnit implements Hour { int sizeStatic = Preferences.getInt("hour.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("hour.cache.static.low", 0), sizeStatic, HourImpl.class); + staticCache = new StaticCache(Preferences.getInt("hour.cache.static.low", 0), sizeStatic, HourImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/InchImpl.java b/src/main/java/org/beyene/sius/unit/impl/InchImpl.java index cfb9e87..8b1a5a6 100644 --- a/src/main/java/org/beyene/sius/unit/impl/InchImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/InchImpl.java @@ -39,7 +39,7 @@ final class InchImpl extends AbstractUnit implements Inch { int sizeStatic = Preferences.getInt("inch.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("inch.cache.static.low", 0), sizeStatic, InchImpl.class); + staticCache = new StaticCache(Preferences.getInt("inch.cache.static.low", 0), sizeStatic, InchImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/KelvinImpl.java b/src/main/java/org/beyene/sius/unit/impl/KelvinImpl.java index bc4152b..9c1a880 100644 --- a/src/main/java/org/beyene/sius/unit/impl/KelvinImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/KelvinImpl.java @@ -37,7 +37,7 @@ final class KelvinImpl extends AbstractUnit impleme int sizeStatic = Preferences.getInt("kelvin.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("kelvin.cache.static.low", 0), sizeStatic, KelvinImpl.class); + staticCache = new StaticCache(Preferences.getInt("kelvin.cache.static.low", 0), sizeStatic, KelvinImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/KiloGramImpl.java b/src/main/java/org/beyene/sius/unit/impl/KiloGramImpl.java index eefd9f8..82c104b 100644 --- a/src/main/java/org/beyene/sius/unit/impl/KiloGramImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/KiloGramImpl.java @@ -37,7 +37,7 @@ final class KiloGramImpl extends AbstractUnit implemen int sizeStatic = Preferences.getInt("kg.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("kg.cache.static.low", 0), sizeStatic, KiloGramImpl.class); + staticCache = new StaticCache(Preferences.getInt("kg.cache.static.low", 0), sizeStatic, KiloGramImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/MeterImpl.java b/src/main/java/org/beyene/sius/unit/impl/MeterImpl.java index 56a7dca..5c0e1ca 100644 --- a/src/main/java/org/beyene/sius/unit/impl/MeterImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/MeterImpl.java @@ -38,7 +38,7 @@ final class MeterImpl extends AbstractUnit implements Mete int sizeStatic = Preferences.getInt("meter.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("meter.cache.static.low", 0), sizeStatic, MeterImpl.class); + staticCache = new StaticCache(Preferences.getInt("meter.cache.static.low", 0), sizeStatic, MeterImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/MeterPerSecondImpl.java b/src/main/java/org/beyene/sius/unit/impl/MeterPerSecondImpl.java index 785026b..742fc5f 100644 --- a/src/main/java/org/beyene/sius/unit/impl/MeterPerSecondImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/MeterPerSecondImpl.java @@ -42,7 +42,7 @@ final class MeterPerSecondImpl extends AbstractUnit 0) - staticCache = new StaticCache<>(Preferences.getInt("mps.cache.static.low", 0), sizeStatic, MeterPerSecondImpl.class); + staticCache = new StaticCache(Preferences.getInt("mps.cache.static.low", 0), sizeStatic, MeterPerSecondImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/MileImpl.java b/src/main/java/org/beyene/sius/unit/impl/MileImpl.java index 4eebe2b..f9e4e55 100644 --- a/src/main/java/org/beyene/sius/unit/impl/MileImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/MileImpl.java @@ -39,7 +39,7 @@ final class MileImpl extends AbstractUnit implements Mile { int sizeStatic = Preferences.getInt("mile.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("mile.cache.static.low", 0), sizeStatic, MileImpl.class); + staticCache = new StaticCache(Preferences.getInt("mile.cache.static.low", 0), sizeStatic, MileImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/MilesPerHourImpl.java b/src/main/java/org/beyene/sius/unit/impl/MilesPerHourImpl.java index d002a50..abcf9a0 100644 --- a/src/main/java/org/beyene/sius/unit/impl/MilesPerHourImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/MilesPerHourImpl.java @@ -46,7 +46,7 @@ final class MilesPerHourImpl extends AbstractUnit 0) - staticCache = new StaticCache<>(Preferences.getInt("mph.cache.static.low", 0), sizeStatic, MilesPerHourImpl.class); + staticCache = new StaticCache(Preferences.getInt("mph.cache.static.low", 0), sizeStatic, MilesPerHourImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/MinuteImpl.java b/src/main/java/org/beyene/sius/unit/impl/MinuteImpl.java index 65b3203..e08c390 100644 --- a/src/main/java/org/beyene/sius/unit/impl/MinuteImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/MinuteImpl.java @@ -39,7 +39,7 @@ final class MinuteImpl extends AbstractUnit implements Min int sizeStatic = Preferences.getInt("minute.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("minute.cache.static.low", 0), sizeStatic, MinuteImpl.class); + staticCache = new StaticCache(Preferences.getInt("minute.cache.static.low", 0), sizeStatic, MinuteImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/PoundImpl.java b/src/main/java/org/beyene/sius/unit/impl/PoundImpl.java index 94b22b8..0578e96 100644 --- a/src/main/java/org/beyene/sius/unit/impl/PoundImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/PoundImpl.java @@ -39,7 +39,7 @@ final class PoundImpl extends AbstractUnit implements Pou int sizeStatic = Preferences.getInt("pound.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("pound.cache.static.low", 0), sizeStatic, PoundImpl.class); + staticCache = new StaticCache(Preferences.getInt("pound.cache.static.low", 0), sizeStatic, PoundImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/SecondImpl.java b/src/main/java/org/beyene/sius/unit/impl/SecondImpl.java index d23a586..e3d4bab 100644 --- a/src/main/java/org/beyene/sius/unit/impl/SecondImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/SecondImpl.java @@ -37,7 +37,7 @@ final class SecondImpl extends AbstractUnit implements Sec int sizeStatic = Preferences.getInt("second.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("second.cache.static.low", 0), sizeStatic, SecondImpl.class); + staticCache = new StaticCache(Preferences.getInt("second.cache.static.low", 0), sizeStatic, SecondImpl.class); else staticCache = null; } diff --git a/src/main/java/org/beyene/sius/unit/impl/StaticCache.java b/src/main/java/org/beyene/sius/unit/impl/StaticCache.java index e1b3741..8285f99 100644 --- a/src/main/java/org/beyene/sius/unit/impl/StaticCache.java +++ b/src/main/java/org/beyene/sius/unit/impl/StaticCache.java @@ -43,10 +43,17 @@ public StaticCache( for (int k = 0; k < cache.length; k++) try { cache[k] = (SELF) implementingClass.getDeclaredConstructor(double.class).newInstance(j++); - } catch (InstantiationException | IllegalAccessException - | IllegalArgumentException | InvocationTargetException - | NoSuchMethodException | SecurityException e) { - // not supposed to happen + } catch (InstantiationException e) { + throw new IllegalStateException(e); + } catch (IllegalAccessException e) { + throw new IllegalStateException(e); + } catch (IllegalArgumentException e) { + throw new IllegalStateException(e); + } catch (InvocationTargetException e) { + throw new IllegalStateException(e); + } catch (NoSuchMethodException e) { + throw new IllegalStateException(e); + } catch (SecurityException e) { throw new IllegalStateException(e); } } diff --git a/src/main/java/org/beyene/sius/unit/impl/YardImpl.java b/src/main/java/org/beyene/sius/unit/impl/YardImpl.java index 4f0d34a..b496512 100644 --- a/src/main/java/org/beyene/sius/unit/impl/YardImpl.java +++ b/src/main/java/org/beyene/sius/unit/impl/YardImpl.java @@ -39,7 +39,7 @@ final class YardImpl extends AbstractUnit implements Yard { int sizeStatic = Preferences.getInt("yard.cache.static.size", 1); if (sizeStatic > 0) - staticCache = new StaticCache<>(Preferences.getInt("yard.cache.static.low", 0), sizeStatic, YardImpl.class); + staticCache = new StaticCache(Preferences.getInt("yard.cache.static.low", 0), sizeStatic, YardImpl.class); else staticCache = null; } diff --git a/src/test/java/org/beyene/sius/cache/SimpleCacheTest.java b/src/test/java/org/beyene/sius/cache/SimpleCacheTest.java index d805331..7fe5354 100644 --- a/src/test/java/org/beyene/sius/cache/SimpleCacheTest.java +++ b/src/test/java/org/beyene/sius/cache/SimpleCacheTest.java @@ -28,7 +28,7 @@ public class SimpleCacheTest { @Test public void testLookUp() throws Exception { - SimpleCache cache = new SimpleCache<>(5); + SimpleCache cache = new SimpleCache(5); double value = 5; Hour h = FactoryTime.hour(value); @@ -41,7 +41,7 @@ public void testLookUp() throws Exception { @Test public void testPut() throws Exception { int size = 10; - SimpleCache cache = new SimpleCache<>(size); + SimpleCache cache = new SimpleCache(size); int min = 1000; boolean flag = true; diff --git a/src/test/java/org/beyene/sius/unit/impl/AbstractUnitTest.java b/src/test/java/org/beyene/sius/unit/impl/AbstractUnitTest.java index 5b59b93..1b71468 100644 --- a/src/test/java/org/beyene/sius/unit/impl/AbstractUnitTest.java +++ b/src/test/java/org/beyene/sius/unit/impl/AbstractUnitTest.java @@ -42,7 +42,7 @@ public class AbstractUnitTest { @Before public void setUp() { dynamicCache = Caches.newInstance(unitId, 10); - staticCache = new StaticCache<>(0, 10, MeterImpl.class); + staticCache = new StaticCache(0, 10, MeterImpl.class); m = new MeterImpl(value, dimension, unitId, interfaceClass, dynamicCache, staticCache); } @@ -94,6 +94,16 @@ public void testValueOf() throws Exception { Meter dynCache1 = m.valueOf(oneThird); Meter dynCache2 = m.valueOf(oneThird); Assert.assertTrue(dynCache1 == dynCache2); + + m = new MeterImpl(oneThird, dimension, unitId, interfaceClass, null, null); + Meter sameInstance = m.valueOf(oneThird); + Assert.assertTrue(m == sameInstance); + + double twoThird = 2d / 3d; + Meter m2 = m.valueOf(twoThird); + Meter notSame = m.valueOf(twoThird); + Assert.assertTrue(m2 != notSame); + } @Test diff --git a/src/test/java/org/beyene/sius/unit/impl/StaticCacheTest.java b/src/test/java/org/beyene/sius/unit/impl/StaticCacheTest.java index b54c4bb..9341d5a 100644 --- a/src/test/java/org/beyene/sius/unit/impl/StaticCacheTest.java +++ b/src/test/java/org/beyene/sius/unit/impl/StaticCacheTest.java @@ -28,7 +28,7 @@ public class StaticCacheTest { public void testCtor1() throws Exception { int low = -5; int size = 10; - StaticCache staticCache = new StaticCache<>(low, + StaticCache staticCache = new StaticCache(low, size, InchImpl.class); int start = low; @@ -40,7 +40,7 @@ public void testCtor1() throws Exception { @Test(expected = IllegalStateException.class) public void testCtor2() throws Exception { @SuppressWarnings("unused") - StaticCache staticCache = new StaticCache<>(0, 5, Inch.class); + StaticCache staticCache = new StaticCache(0, 5, Inch.class); Assert.fail("Class parameter has to be class of an interface to throw the expected exception!"); } } \ No newline at end of file