Skip to content

Commit

Permalink
Refactor AbstractLifecycle
Browse files Browse the repository at this point in the history
  • Loading branch information
Emil Forslund committed Mar 15, 2016
1 parent da1e432 commit 121394a
Show file tree
Hide file tree
Showing 8 changed files with 476 additions and 341 deletions.
432 changes: 338 additions & 94 deletions src/main/java/com/speedment/component/Lifecyclable.java

Large diffs are not rendered by default.

Expand Up @@ -22,29 +22,25 @@
import com.speedment.field.trait.ComparableFieldTrait;
import com.speedment.field.trait.FieldTrait;
import com.speedment.field.trait.ReferenceFieldTrait;
import com.speedment.component.Lifecyclable;
import com.speedment.internal.core.runtime.AbstractLifecycle;
import com.speedment.stream.StreamDecorator;
import java.util.stream.Stream;
import java.util.Optional;
import static java.util.Objects.requireNonNull;

/**
*
* @author Emil Forslund
*
* @param <ENTITY> Entity type for this Manager
* @author Emil Forslund
* @param <ENTITY> entity type for this Manager
*/
public abstract class AbstractManager<ENTITY> implements Manager<ENTITY> {
public abstract class AbstractManager<ENTITY> extends AbstractLifecycle<Manager<ENTITY>> implements Manager<ENTITY> {

protected final Speedment speedment;

private Lifecyclable.State state;

private final JsonEncoder<ENTITY> sharedJasonFormatter;

public AbstractManager(Speedment speedment) {
protected AbstractManager(Speedment speedment) {
this.speedment = requireNonNull(speedment);
state = Lifecyclable.State.CREATED;
sharedJasonFormatter = JsonEncoder.allOf(this);
}

Expand All @@ -70,44 +66,8 @@ Optional<ENTITY> findAny(F field, V value) {
.findAny(getEntityClass(), field, value);
}

@Override
public Manager<ENTITY> initialize() {
state = State.INIITIALIZED;
return this;
}

@Override
public Manager<ENTITY> load() {
state = State.LOADED;
return this;
}

@Override
public Manager<ENTITY> resolve() {
state = State.RESOLVED;
return this;
}

@Override
public Manager<ENTITY> start() {
state = State.STARTED;
return this;
}

@Override
public Manager<ENTITY> stop() {
state = State.STOPPED;
return this;
}

@Override
public Lifecyclable.State getState() {
return state;
}

@Override
public Speedment speedment() {
return speedment;
}

}
}
Expand Up @@ -18,17 +18,21 @@

import com.speedment.Speedment;
import com.speedment.component.Component;
import com.speedment.component.Lifecyclable;
import com.speedment.internal.core.runtime.AbstractLifecycle;
import com.speedment.internal.logging.Logger;
import com.speedment.internal.logging.LoggerManager;
import static java.util.Objects.requireNonNull;

/**
*
* @author pemi
* @author Per Minborg
* @author Emil Forslund
*/
public abstract class AbstractComponent implements Component {
public abstract class AbstractComponent extends AbstractLifecycle<Component> implements Component {

private final static Logger LOGGER = LoggerManager.getLogger(AbstractComponent.class);

private final Speedment speedment;
private Lifecyclable.State state;

public AbstractComponent(Speedment speedment) {
this.speedment = requireNonNull(speedment);
Expand All @@ -43,39 +47,4 @@ public boolean isInternal() {
public Speedment getSpeedment() {
return speedment;
}

@Override
public AbstractComponent initialize() {
state = State.INIITIALIZED;
return this;
}

@Override
public AbstractComponent load() {
state = State.LOADED;
return this;
}

@Override
public AbstractComponent resolve() {
state = State.RESOLVED;
return this;
}

@Override
public AbstractComponent start() {
state = State.STARTED;
return this;
}

@Override
public AbstractComponent stop() {
state = State.STOPPED;
return this;
}

@Override
public Lifecyclable.State getState() {
return state;
}
}
Expand Up @@ -61,12 +61,8 @@ public final class DocumentPropertyComponentImpl extends InternalOpenSourceCompo
public DocumentPropertyComponentImpl(Speedment speedment) {
super(speedment);
root = new Branch(DEFAULT_CONSTRUCTOR);
}

@Override
public AbstractComponent initialize() {

root.find().set((parent) -> new ProjectProperty());
root.find().set(parent -> new ProjectProperty());
root.find(DBMSES).set(parent -> new DbmsProperty((Project) parent));
root.find(SCHEMAS).set(parent -> new SchemaProperty((Dbms) parent));
root.find(TABLES).set(parent -> new TableProperty((Schema) parent));
Expand All @@ -76,8 +72,6 @@ public AbstractComponent initialize() {
root.find(INDEX_COLUMNS).set(parent -> new IndexColumnProperty((Index) parent));
root.find(FOREIGN_KEYS).set(parent -> new ForeignKeyProperty((Table) parent));
root.find(FOREIGN_KEY_COLUMNS).set(parent -> new ForeignKeyColumnProperty((ForeignKey) parent));

return super.initialize();
}

@Override
Expand Down

0 comments on commit 121394a

Please sign in to comment.