package ecologylab.bigsemantics.logging; import java.util.Date; import ecologylab.logging.LogPost; import ecologylab.serialization.annotations.Hint; import ecologylab.serialization.annotations.simpl_composite; import ecologylab.serialization.annotations.simpl_hints; import ecologylab.serialization.annotations.simpl_scalar; import ecologylab.serialization.types.element.IMappable; /** * * @author quyin */ public class Phase implements IMappable<String> { // predefined names: public static final String WHOLE = "whole"; public static final String DOWNLOAD_AND_PARSE = "download_and_parse"; public static final String PCACHE_READ = "persistent_cache_read"; public static final String PCACHE_WRITE = "persistent_cache_write"; public static final String DOWNLOAD = "download"; public static final String EXTRACT = "extract"; @simpl_scalar String name; @simpl_scalar @simpl_hints(Hint.XML_LEAF) Date beginTime; @simpl_scalar @simpl_hints(Hint.XML_LEAF) Date endTime; @simpl_scalar @simpl_hints(Hint.XML_LEAF) long timeInMs; @simpl_composite LogPost logPost; public LogPost getLogPost() { return logPost; } public LogPost logPost() { if (logPost == null) { synchronized (this) { if (logPost == null) { logPost = new LogPost(); } } } return logPost; } @Override public String key() { return name; } }