Skip to content

Commit

Permalink
Separate Values into interfaces and impl
Browse files Browse the repository at this point in the history
  • Loading branch information
minborg committed Oct 6, 2016
1 parent 362659d commit abe1aa3
Show file tree
Hide file tree
Showing 32 changed files with 337 additions and 92 deletions.
Expand Up @@ -16,10 +16,7 @@
*/
package com.speedment.common.codegen.constant;

import com.speedment.common.codegen.internal.model.value.NullValue;
import com.speedment.common.codegen.internal.model.value.TextValue;
import com.speedment.common.codegen.model.Value;

import static java.util.Objects.requireNonNull;

/**
Expand All @@ -35,7 +32,7 @@ public final class DefaultValue {
private DefaultValue() {}

public final static Value<?>
NULL = new NullValue(),
NULL = Value.ofNull(),
EMPTY_STRING = string("");

/**
Expand All @@ -45,6 +42,6 @@ private DefaultValue() {}
* @return a value representing that string
*/
public static Value<String> string(String text) {
return new TextValue(requireNonNull(text));
return Value.ofText(requireNonNull(text));
}
}
Expand Up @@ -43,12 +43,6 @@
import com.speedment.common.codegen.internal.java.view.value.NumberValueView;
import com.speedment.common.codegen.internal.java.view.value.ReferenceValueView;
import com.speedment.common.codegen.internal.java.view.value.TextValueView;
import com.speedment.common.codegen.internal.model.value.ArrayValue;
import com.speedment.common.codegen.internal.model.value.BooleanValue;
import com.speedment.common.codegen.internal.model.value.EnumValue;
import com.speedment.common.codegen.internal.model.value.NumberValue;
import com.speedment.common.codegen.internal.model.value.ReferenceValue;
import com.speedment.common.codegen.internal.model.value.TextValue;
import com.speedment.common.codegen.model.Annotation;
import com.speedment.common.codegen.model.AnnotationUsage;
import com.speedment.common.codegen.model.Class;
Expand All @@ -67,6 +61,12 @@
import com.speedment.common.codegen.model.JavadocTag;
import com.speedment.common.codegen.model.Method;
import com.speedment.common.codegen.model.modifier.Modifier;
import com.speedment.common.codegen.model.value.ArrayValue;
import com.speedment.common.codegen.model.value.BooleanValue;
import com.speedment.common.codegen.model.value.EnumValue;
import com.speedment.common.codegen.model.value.NumberValue;
import com.speedment.common.codegen.model.value.ReferenceValue;
import com.speedment.common.codegen.model.value.TextValue;

import java.lang.reflect.Type;

Expand Down
Expand Up @@ -18,12 +18,12 @@

import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.Transform;
import com.speedment.common.codegen.internal.model.value.ArrayValue;

import java.util.Optional;
import java.util.stream.Collectors;

import static com.speedment.common.codegen.internal.util.NullUtil.requireNonNulls;
import com.speedment.common.codegen.model.value.ArrayValue;

/**
* Transforms from an {@link ArrayValue} to java code.
Expand Down
Expand Up @@ -18,7 +18,7 @@

import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.Transform;
import com.speedment.common.codegen.internal.model.value.BooleanValue;
import com.speedment.common.codegen.model.value.BooleanValue;

import java.util.Optional;

Expand Down
Expand Up @@ -18,11 +18,11 @@

import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.Transform;
import com.speedment.common.codegen.internal.model.value.EnumValue;

import java.util.Optional;

import static com.speedment.common.codegen.internal.util.NullUtil.requireNonNulls;
import com.speedment.common.codegen.model.value.EnumValue;

/**
* Transforms from an {@link EnumValue} to java code.
Expand Down
Expand Up @@ -18,7 +18,7 @@

import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.Transform;
import com.speedment.common.codegen.internal.model.value.NullValue;
import com.speedment.common.codegen.model.value.NullValue;

import java.util.Optional;

Expand Down
Expand Up @@ -18,7 +18,8 @@

import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.Transform;
import com.speedment.common.codegen.internal.model.value.NumberValue;
import com.speedment.common.codegen.model.value.NumberValue;


import java.util.Optional;

Expand Down
Expand Up @@ -18,7 +18,7 @@

import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.Transform;
import com.speedment.common.codegen.internal.model.value.ReferenceValue;
import com.speedment.common.codegen.model.value.ReferenceValue;

import java.util.Optional;

Expand Down
Expand Up @@ -23,11 +23,11 @@

import com.speedment.common.codegen.Generator;
import com.speedment.common.codegen.Transform;
import com.speedment.common.codegen.internal.model.value.TextValue;

import java.util.Optional;

import static com.speedment.common.codegen.internal.util.NullUtil.requireNonNulls;
import com.speedment.common.codegen.model.value.TextValue;

/**
* Transforms from an {@link TextValue} to java code.
Expand Down
Expand Up @@ -19,26 +19,26 @@
import com.speedment.common.codegen.internal.model.ValueImpl;
import com.speedment.common.codegen.internal.util.Copier;
import com.speedment.common.codegen.model.Value;

import com.speedment.common.codegen.model.value.ArrayValue;
import java.util.ArrayList;
import java.util.List;

/**
*
* @author Emil Forslund
*/
public final class ArrayValue extends ValueImpl<List<Value<?>>> {
public ArrayValue() {
super(new ArrayList<>());
}
public final class ArrayValueImpl extends ValueImpl<List<Value<?>>> implements ArrayValue {

public ArrayValueImpl() {
super(new ArrayList<>());
}

public ArrayValue(List<Value<?>> val) {
super(val);
}
public ArrayValueImpl(List<Value<?>> val) {
super(val);
}

@Override
public ArrayValue copy() {
return new ArrayValue(Copier.copy(getValue(), s -> s.copy()));
}
}
@Override
public ArrayValueImpl copy() {
return new ArrayValueImpl(Copier.copy(getValue(), s -> s.copy()));
}
}
Expand Up @@ -17,19 +17,20 @@
package com.speedment.common.codegen.internal.model.value;

import com.speedment.common.codegen.internal.model.ValueImpl;
import com.speedment.common.codegen.model.value.BooleanValue;

/**
*
* @author Emil Forslund
*/
public final class BooleanValue extends ValueImpl<Boolean> {
public final class BooleanValueImpl extends ValueImpl<Boolean> implements BooleanValue {

public BooleanValue(Boolean num) {
public BooleanValueImpl(Boolean num) {
super(num);
}

@Override
public BooleanValue copy() {
return new BooleanValue(getValue());
public BooleanValueImpl copy() {
return new BooleanValueImpl(getValue());
}
}
Expand Up @@ -17,7 +17,7 @@
package com.speedment.common.codegen.internal.model.value;

import com.speedment.common.codegen.internal.model.ValueImpl;
import com.speedment.common.codegen.model.trait.HasType;
import com.speedment.common.codegen.model.value.EnumValue;

import java.lang.reflect.Type;
import java.util.Objects;
Expand All @@ -26,22 +26,21 @@
*
* @author Emil Forslund
*/
public final class EnumValue extends ValueImpl<String>
implements HasType<EnumValue> {
public final class EnumValueImpl extends ValueImpl<String> implements EnumValue {

private Type type;

public EnumValue(Type type, String value) {
public EnumValueImpl(Type type, String value) {
super (value);
this.type = type;
}

protected EnumValue(EnumValue prototype) {
this (prototype.type, prototype.getValue());
protected EnumValueImpl(EnumValue prototype) {
this (prototype.getType(), prototype.getValue());
}

@Override
public EnumValue set(Type type) {
public EnumValueImpl set(Type type) {
this.type = type;
return this;
}
Expand All @@ -52,8 +51,8 @@ public Type getType() {
}

@Override
public EnumValue copy() {
return new EnumValue(this);
public EnumValueImpl copy() {
return new EnumValueImpl(this);
}

@Override
Expand All @@ -75,7 +74,7 @@ public boolean equals(Object obj) {
return false;
}
final EnumValue other = (EnumValue) obj;
return Objects.equals(this.type, other.type);
return Objects.equals(this.type, other.getType());
}


Expand Down
Expand Up @@ -17,19 +17,20 @@
package com.speedment.common.codegen.internal.model.value;

import com.speedment.common.codegen.internal.model.ValueImpl;
import com.speedment.common.codegen.model.value.NullValue;

/**
*
* @author Emil Forslund
*/
public final class NullValue extends ValueImpl<Number> {
public final class NullValueImpl extends ValueImpl<Number> implements NullValue {

public NullValue() {
public NullValueImpl() {
super(0);
}

@Override
public NullValue copy() {
public NullValueImpl copy() {
return this;
}
}
Expand Up @@ -17,19 +17,20 @@
package com.speedment.common.codegen.internal.model.value;

import com.speedment.common.codegen.internal.model.ValueImpl;
import com.speedment.common.codegen.model.value.NumberValue;

/**
*
* @author Emil Forslund
*/
public final class TextValue extends ValueImpl<String> {
public final class NumberValueImpl extends ValueImpl<Number> implements NumberValue {

public TextValue(String num) {
public NumberValueImpl(Number num) {
super(num);
}

@Override
public TextValue copy() {
return new TextValue(getValue());
public NumberValueImpl copy() {
return new NumberValueImpl(getValue());
}
}
Expand Up @@ -17,19 +17,20 @@
package com.speedment.common.codegen.internal.model.value;

import com.speedment.common.codegen.internal.model.ValueImpl;
import com.speedment.common.codegen.model.value.ReferenceValue;

/**
*
* @author Emil Forslund
*/
public final class ReferenceValue extends ValueImpl<String> {
public final class ReferenceValueImpl extends ValueImpl<String> implements ReferenceValue {

public ReferenceValue(String value) {
public ReferenceValueImpl(String value) {
super(value);
}

@Override
public ReferenceValue copy() {
return new ReferenceValue(getValue());
public ReferenceValueImpl copy() {
return new ReferenceValueImpl(getValue());
}
}
Expand Up @@ -17,19 +17,20 @@
package com.speedment.common.codegen.internal.model.value;

import com.speedment.common.codegen.internal.model.ValueImpl;
import com.speedment.common.codegen.model.value.TextValue;

/**
*
* @author Emil Forslund
*/
public final class NumberValue extends ValueImpl<Number> {
public final class TextValueImpl extends ValueImpl<String> implements TextValue {

public NumberValue(Number num) {
super(num);
}
public TextValueImpl(String num) {
super(num);
}

@Override
public NumberValue copy() {
return new NumberValue(getValue());
}
}
@Override
public TextValueImpl copy() {
return new TextValueImpl(getValue());
}
}

0 comments on commit abe1aa3

Please sign in to comment.