Skip to content

Commit

Permalink
added codegen model items
Browse files Browse the repository at this point in the history
  • Loading branch information
minborg committed Jan 20, 2015
1 parent c532e6e commit 9330c3e
Show file tree
Hide file tree
Showing 8 changed files with 106 additions and 41 deletions.
4 changes: 4 additions & 0 deletions .gitignore
@@ -0,0 +1,4 @@
/target/
/nb-configuration.xml


@@ -1,9 +1,46 @@
package com.speedment.codegen.control;

import com.speedment.codegen.model.Class_;
import com.speedment.codegen.model.Field_;
import com.speedment.codegen.model.Method_;
import com.speedment.codegen.model.Statement_;

/**
*
* @author pemi
*/
public class AccessorImplementer {
public class AccessorImplementer implements Controller {

private final Class_ class_;

public AccessorImplementer(final Class_ class_) {
this.class_ = class_;
}

@Override
public void apply() {
class_.getFields().forEach((f) -> generateAccessors(f));
}

protected void generateAccessors(final Field_ field_) {
generateGetter(field_);
generateSetter(field_);
}

protected void generateGetter(final Field_ field_) {
final Method_ method_ = new Method_(field_.getType_(), "get" + firstCharCapital(field_.getName_()));
method_.add(new Statement_("return " + field_.getName_()));
class_.add(method_);
}

protected void generateSetter(final Field_ field_) {
final Method_ method_ = new Method_(field_.getType_(), "set" + firstCharCapital(field_.getName_())).add(new Field_(field_.getType_(), field_.getName_()));
method_.add(new Statement_("this." + field_.getName_() + " = "));
class_.add(method_);
}

private String firstCharCapital(CharSequence s) {
return new StringBuilder().append(Character.toUpperCase(s.charAt(0))).append(s.subSequence(1, s.length())).toString();
}

}
7 changes: 7 additions & 0 deletions src/main/java/com/speedment/codegen/control/Controller.java
@@ -0,0 +1,7 @@
package com.speedment.codegen.control;

public interface Controller {

void apply();

}
9 changes: 9 additions & 0 deletions src/main/java/com/speedment/codegen/model/Class_.java
Expand Up @@ -12,6 +12,7 @@ public class Class_ {
private final List<Field_> fields;
private final List<Constructor_> constructors;
private final List<Method_> methods;
private Package_ pagage;

public Class_() {
this.fields = new ArrayList<>();
Expand Down Expand Up @@ -46,4 +47,12 @@ public List<Method_> getMethods() {
return methods;
}

public Package_ getPagage() {
return pagage;
}

public void setPagage(Package_ pagage) {
this.pagage = pagage;
}

}
10 changes: 9 additions & 1 deletion src/main/java/com/speedment/codegen/model/Field_.java
Expand Up @@ -9,7 +9,7 @@ public class Field_ {
protected boolean private_;
protected boolean static_;
protected boolean final_;
protected Type_ type_;
private Type_ type_;
private CharSequence name_;
private Expression_ expression_;

Expand Down Expand Up @@ -95,4 +95,12 @@ public Expression_ getExpression_() {
public void setExpression_(Expression_ expression_) {
this.expression_ = expression_;
}

public Type_ getType_() {
return type_;
}

public void setType_(Type_ type_) {
this.type_ = type_;
}
}
41 changes: 6 additions & 35 deletions src/main/java/com/speedment/codegen/model/Method_.java
Expand Up @@ -15,44 +15,23 @@ public class Method_ {
private Type_ type_;
private CharSequence name_;
private Expression_ expression_;
private Block_ block;
private List<Field_> parameters; // Todo: Introduce parameter
private List<Statement_> statements;

public Method_(Type_ type_, CharSequence name_) {
this.parameters = new ArrayList<>();
this.statements = new ArrayList<>();
this.type_ = type_;
this.name_ = name_;
}

public Method_ private_() {
return private_(true);
}

public Method_ private_(boolean private_) {
this.setPrivate_(private_);
return this;
}

public Method_ static_() {
return static_(true);
}

public Method_ static_(boolean static_) {
this.setFinal_(static_);
return this;
}

public Method_ final_(boolean final_) {
this.setFinal_(final_);
public Method_ add(Field_ field_) {
getParameters().add(field_);
return this;
}

public Method_ final_() {
return final_(true);
}

Method_ add(Field_ field_) {
getParameters().add(field_);
public Method_ add(Statement_ statement) {
statements.add(statement);
return this;
}

Expand Down Expand Up @@ -104,14 +83,6 @@ public void setExpression_(Expression_ expression_) {
this.expression_ = expression_;
}

public Block_ getBlock() {
return block;
}

public void setBlock(Block_ block) {
this.block = block;
}

public List<Field_> getParameters() {
return parameters;
}
Expand Down
16 changes: 16 additions & 0 deletions src/main/java/com/speedment/codegen/model/Package_.java
Expand Up @@ -11,9 +11,11 @@ public class Package_ {

private String name_;
private final List<Class_> classes;
private final List<Package_> packages;

public Package_() {
this.classes = new ArrayList<>();
this.packages = new ArrayList<>();
}

public String getName_() {
Expand All @@ -24,4 +26,18 @@ public void setName_(String name_) {
this.name_ = name_;
}

Package_ add(Class_ class_) {
classes.add(class_);
return this;
}

Package_ add(Package_ package_) {
package_.add(package_);
return this;
}

public List<Package_> getPackages() {
return packages;
}

}
21 changes: 17 additions & 4 deletions src/main/java/com/speedment/codegen/model/Statement_.java
Expand Up @@ -6,18 +6,31 @@
*/
public class Statement_ {

private CharSequence statementText;
private CharSequence statementText_;
private Block_ block_;

public Statement_(CharSequence statementText) {
this.statementText = statementText;
this.statementText_ = statementText;
}

public Statement_(Block_ block_) {
this.block_ = block_;
}

public CharSequence getStatementText() {
return statementText;
return statementText_;
}

public void setStatementText(CharSequence statementText) {
this.statementText = statementText;
this.statementText_ = statementText;
}

public Block_ getBlock() {
return block_;
}

public void setBlock(Block_ block_) {
this.block_ = block_;
}

}

0 comments on commit 9330c3e

Please sign in to comment.