Skip to content

Instantly share code, notes, and snippets.

@codingtim
codingtim / SomeMongoTest.java
Last active August 27, 2016 09:50
Usage of InMemoryMongo
public class SomeMongoTest
private static InMemoryMongo inMemoryMongo;
private static Client client;
@BeforeClass
public static void setUpClass() throws Exception {
inMemoryMongo = new InMemoryMongo().start();
client = inMemoryMongo.getClient();
}
@codingtim
codingtim / Target.java
Created September 12, 2016 17:28
Target start class
public class Target {
private String code;
private String name;
private String publicIdentifier;
public Target(String code, String name, String publicIdentifier) {
this.code = code;
this.name = name;
this.publicIdentifier = publicIdentifier;
@codingtim
codingtim / Target.java
Last active September 13, 2016 07:15
Target with validation
public class Target {
private static final Pattern ALLOWED_REGEX = Pattern.compile("[a-zA-Z\\-_]*");
private String code;
private String name;
private String publicIdentifier;
public Target(String code, String name, String publicIdentifier) {
validate(code, "code");
@codingtim
codingtim / PublicIdentifier.java
Last active September 13, 2016 07:14
Target with modeled PublicIdentifier
public class PublicIdentifier {
private static final Pattern ALLOWED_REGEX = Pattern.compile("[a-zA-Z\\-_]*");
private String value;
public PublicIdentifier(String value) {
validate(value);
this.value = value;
}
public interface DataSource {
List<Entity> getEntities();
}
public interface PagedDataSource {
List<Entity> getEntities(Paging paging);
}
public class PagedDataSourceConsumer {
private PagedDataSource pagedDataSource;
public void consume() {
List<Entity> entities;
Paging nextPage = Paging.firstPage();
for(entities = pagedDataSource.getEntities(nextPage); !entities.isEmpty(); entities = pagedDataSource.getEntities(nextPage)) {
for(Entity entity: entities) {
//doStuff
}
nextPage = nextPage.next();
import com.mxgraph.canvas.mxICanvas;
import com.mxgraph.canvas.mxSvgCanvas;
import com.mxgraph.io.mxCodec;
import com.mxgraph.util.mxCellRenderer;
import com.mxgraph.util.mxDomUtils;
import com.mxgraph.util.mxUtils;
import com.mxgraph.util.mxXmlUtils;
import com.mxgraph.view.mxGraph;
public class DrawIoConverter{
public interface IteratorDataSource {
Iterator<Entity> getAllEntities();
}
public class IteratorDataSourceImpl implements IteratorDataSource {
private PagedDataSource pagedDataSource;
@Override
public Iterator<Entity> getAllEntities() {
return new PagedIterator(Paging.firstPage(), (Paging paging) -> pagedDataSource.getEntities(paging).iterator());
}
private static class PagedIterator implements Iterator<Entity> {