Skip to content

Commit 2512456

Browse files
deepnettsdeepnetts
authored andcommitted
fixed a bunch of stuff :) mostly exceptions. builders, removed util package
1 parent 21a21d9 commit 2512456

10 files changed

+38
-30
lines changed

src/main/java/javax/visrec/ml/classification/LogisticRegression.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package javax.visrec.ml.classification;
22

3+
import java.util.Objects;
34
import javax.visrec.ml.model.ModelProvider;
45

56
/**
@@ -18,5 +19,9 @@ public abstract class LogisticRegression<MODEL_CLASS> implements BinaryClassifie
1819
public MODEL_CLASS getModel() {
1920
return model;
2021
}
22+
23+
protected final void setModel(MODEL_CLASS model) {
24+
this.model = Objects.requireNonNull(model, "Model cannot be null!");
25+
}
2126

2227
}

src/main/java/javax/visrec/ml/classification/NeuralNetBinaryClassifier.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package javax.visrec.ml.classification;
22

3+
import javax.visrec.ml.model.ModelCreationException;
34
import javax.visrec.spi.ServiceProvider;
45
import java.nio.file.Path;
56

@@ -62,7 +63,7 @@ private static <R> BuildingBlock<R> copyWithNewTargetClass(BuildingBlock<?> bloc
6263
}
6364
}
6465

65-
class Builder<T> implements javax.visrec.util.Builder<BinaryClassifier<T>, ClassifierCreationException> {
66+
class Builder<T> implements javax.visrec.ml.model.ModelBuilder<BinaryClassifier<T>> {
6667

6768
private NeuralNetBinaryClassifier.BuildingBlock<T> block;
6869

@@ -113,7 +114,7 @@ public NeuralNetBinaryClassifier.BuildingBlock<T> getBuildingBlock() {
113114
return block;
114115
}
115116

116-
public BinaryClassifier<T> build() throws ClassifierCreationException {
117+
public BinaryClassifier<T> build() throws ModelCreationException {
117118
return ServiceProvider.current().getClassifierFactoryService().createNeuralNetBinaryClassifier(block);
118119
}
119120
}

src/main/java/javax/visrec/ml/classification/NeuralNetImageClassifier.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package javax.visrec.ml.classification;
22

3+
import javax.visrec.ml.model.ModelCreationException;
34
import javax.visrec.spi.ServiceProvider;
45
import java.nio.file.Path;
56

@@ -88,7 +89,7 @@ private static <R> BuildingBlock<R> copyWithNewInputClass(BuildingBlock<?> block
8889
}
8990
}
9091

91-
class Builder<T> implements javax.visrec.util.Builder<ImageClassifier<T>, ClassifierCreationException> {
92+
class Builder<T> implements javax.visrec.ml.model.ModelBuilder<ImageClassifier<T>> {
9293

9394
private BuildingBlock<T> block;
9495

@@ -159,7 +160,7 @@ public BuildingBlock<T> getBuildingBlock() {
159160
return block;
160161
}
161162

162-
public ImageClassifier<T> build() throws ClassifierCreationException {
163+
public ImageClassifier<T> build() throws ModelCreationException {
163164
return ServiceProvider.current().getClassifierFactoryService().createNeuralNetImageClassifier(block);
164165
}
165166
}

src/main/java/javax/visrec/util/InvalidBuilderConfigurationException.java renamed to src/main/java/javax/visrec/ml/model/InvalidConfigurationException.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package javax.visrec.util;
1+
package javax.visrec.ml.model;
22

33
/**
44
* The Builder is able to attempt to invoke setter methods of the implemented Builder interface. If the
@@ -7,9 +7,9 @@
77
*
88
* @author Kevin Berendsen
99
*/
10-
public class InvalidBuilderConfigurationException extends RuntimeException {
10+
public class InvalidConfigurationException extends ModelCreationException {
1111

12-
InvalidBuilderConfigurationException(String msg, Throwable throwable) {
12+
InvalidConfigurationException(String msg, Throwable throwable) {
1313
super(msg, throwable);
1414
}
1515

src/main/java/javax/visrec/util/Builder.java renamed to src/main/java/javax/visrec/ml/model/ModelBuilder.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package javax.visrec.util;
1+
package javax.visrec.ml.model;
22

33
import java.lang.reflect.InvocationTargetException;
44
import java.lang.reflect.Method;
@@ -12,30 +12,30 @@
1212
* @author Kevin Berendsen
1313
* @since 1.0
1414
*/
15-
public interface Builder<T, E extends Throwable> {
15+
public interface ModelBuilder<T> {
1616

1717
/**
1818
* Builds and returns an object using properties set using available builder methods.
1919
*
2020
* @return object specified by the builder to build
2121
*/
22-
T build() throws E;
22+
T build() throws ModelCreationException;
2323

2424
/**
2525
* Builds an object using properties from the specified input argument
2626
*
2727
* @param configuration properties for the builder, a map of key, value pairs.
2828
* @return object specified by the builder to build
2929
*/
30-
default T build(Map<String, Object> configuration) throws E, InvalidBuilderConfigurationException {
30+
default T build(Map<String, Object> configuration) throws ModelCreationException {
3131
Method[] methods = this.getClass().getDeclaredMethods();
3232
for (Method method : methods) {
3333
if (!method.getName().equals("build") && method.getParameterCount() == 1
3434
&& configuration.containsKey(method.getName())) {
3535
try {
3636
method.invoke(this, configuration.get(method.getName()));
3737
} catch (IllegalAccessException | InvocationTargetException | IllegalArgumentException e) {
38-
throw new InvalidBuilderConfigurationException("Couldn't invoke '" + method.getName() + "'", e);
38+
throw new InvalidConfigurationException("Couldn't invoke '" + method.getName() + "'", e);
3939
}
4040
}
4141
}
Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
package javax.visrec.ml.classification;
1+
package javax.visrec.ml.model;
22

33
/**
44
* Exception thrown if anything fails in the creation of a classifier.
55
*
66
* @author Kevin Berendsen
77
* @since 1.0
88
*/
9-
public class ClassifierCreationException extends Exception {
9+
public class ModelCreationException extends Exception {
1010

1111
/**
1212
* Creates a new instance of the exception
1313
* @param message additional message of the cause.
1414
*/
15-
public ClassifierCreationException(String message) {
15+
public ModelCreationException(String message) {
1616
super(message);
1717
}
1818

@@ -21,7 +21,7 @@ public ClassifierCreationException(String message) {
2121
* @param message additional message of the cause.
2222
* @param throwable caused by throwable.
2323
*/
24-
public ClassifierCreationException(String message, Throwable throwable) {
24+
public ModelCreationException(String message, Throwable throwable) {
2525
super(message, throwable);
2626
}
2727

src/main/java/javax/visrec/ml/regression/SimpleLinearRegression.java

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package javax.visrec.ml.regression;
22

3+
import java.util.Objects;
34
import javax.visrec.ml.model.ModelProvider;
45

56
/**
@@ -18,9 +19,9 @@ public MODEL_CLASS getModel() {
1819
return model;
1920
}
2021

21-
// protected void setModel(MODEL_CLASS model) {
22-
// this.model = model;
23-
// }
22+
protected final void setModel(MODEL_CLASS model) {
23+
this.model = Objects.requireNonNull(model, "Model cannot bu null!");
24+
}
2425

2526
@Override
2627
public abstract Float predict(Float input);
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package javax.visrec.spi;
22

3-
import javax.visrec.ml.classification.ClassifierCreationException;
3+
import javax.visrec.ml.model.ModelCreationException;
44
import javax.visrec.ml.classification.BinaryClassifier;
55
import javax.visrec.ml.classification.NeuralNetBinaryClassifier;
66

77
public interface BinaryClassifierFactory<T> {
88

99
Class<T> getTargetClass();
1010

11-
BinaryClassifier<T> create(NeuralNetBinaryClassifier.BuildingBlock<T> block) throws ClassifierCreationException;
11+
BinaryClassifier<T> create(NeuralNetBinaryClassifier.BuildingBlock<T> block) throws ModelCreationException;
1212

1313
}

src/main/java/javax/visrec/spi/ClassifierFactoryService.java

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package javax.visrec.spi;
22

3-
import javax.visrec.ml.classification.ClassifierCreationException;
3+
import javax.visrec.ml.model.ModelCreationException;
44
import javax.visrec.ml.classification.*;
55
import java.util.HashMap;
66
import java.util.Map;
@@ -35,9 +35,9 @@ private ClassifierFactoryService() {
3535
*
3636
* @param block {@link NeuralNetImageClassifier.BuildingBlock} is provided to tune the building of the image classifier.
3737
* @return {@link ImageClassifier}
38-
* @throws ClassifierCreationException if the classifier can not be created due to any reason.
38+
* @throws ModelCreationException if the classifier can not be created due to any reason.
3939
*/
40-
public <T> ImageClassifier<T> createNeuralNetImageClassifier(NeuralNetImageClassifier.BuildingBlock<T> block) throws ClassifierCreationException {
40+
public <T> ImageClassifier<T> createNeuralNetImageClassifier(NeuralNetImageClassifier.BuildingBlock<T> block) throws ModelCreationException {
4141
if (imageClassifierFactories == null) {
4242
imageClassifierFactories = new HashMap<>();
4343
for (ImageClassifierFactory<?> classifierCreator : ServiceLoader.load(ImageClassifierFactory.class)) {
@@ -47,7 +47,7 @@ public <T> ImageClassifier<T> createNeuralNetImageClassifier(NeuralNetImageClass
4747

4848
ImageClassifierFactory<?> creator = imageClassifierFactories.get(block.getInputClass());
4949
if (creator == null) {
50-
throw new ClassifierCreationException("Unsupported image class");
50+
throw new ModelCreationException("Unsupported image class");
5151
}
5252

5353
@SuppressWarnings("unchecked")
@@ -61,9 +61,9 @@ public <T> ImageClassifier<T> createNeuralNetImageClassifier(NeuralNetImageClass
6161
*
6262
* @param block {@link NeuralNetBinaryClassifier.BuildingBlock} is provided to tune the building of the binary classifier.
6363
* @return {@link BinaryClassifier}
64-
* @throws ClassifierCreationException if the classifier can not be created due to any reason.
64+
* @throws ModelCreationException if the classifier can not be created due to any reason.
6565
*/
66-
public <T> BinaryClassifier<T> createNeuralNetBinaryClassifier(NeuralNetBinaryClassifier.BuildingBlock<T> block) throws ClassifierCreationException {
66+
public <T> BinaryClassifier<T> createNeuralNetBinaryClassifier(NeuralNetBinaryClassifier.BuildingBlock<T> block) throws ModelCreationException {
6767
if (binaryClassifierFactories == null) {
6868
binaryClassifierFactories = new HashMap<>();
6969
for (BinaryClassifierFactory<?> classifierCreator : ServiceLoader.load(BinaryClassifierFactory.class)) {
@@ -73,7 +73,7 @@ public <T> BinaryClassifier<T> createNeuralNetBinaryClassifier(NeuralNetBinaryCl
7373

7474
BinaryClassifierFactory<?> creator = binaryClassifierFactories.get(block.getInputClass());
7575
if (creator == null) {
76-
throw new ClassifierCreationException("Unsupported target class");
76+
throw new ModelCreationException("Unsupported target class");
7777
}
7878

7979
@SuppressWarnings("unchecked")
Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
11
package javax.visrec.spi;
22

3-
import javax.visrec.ml.classification.ClassifierCreationException;
3+
import javax.visrec.ml.model.ModelCreationException;
44
import javax.visrec.ml.classification.ImageClassifier;
55
import javax.visrec.ml.classification.NeuralNetImageClassifier;
66

77
public interface ImageClassifierFactory<T> {
88

99
Class<T> getImageClass();
1010

11-
ImageClassifier<T> create(NeuralNetImageClassifier.BuildingBlock<T> block) throws ClassifierCreationException;
11+
ImageClassifier<T> create(NeuralNetImageClassifier.BuildingBlock<T> block) throws ModelCreationException;
1212

1313
}

0 commit comments

Comments
 (0)