// Path: app/models/Component.java
// public class Component {
// 	static Map<String, Component> components = new HashMap<String, Component>();
// 	
// 	public String id = UUID.randomUUID().toString();
// 	public String componentName;
// 	public Components componentType;
// 	public Date created = new Date();
// 	
// 	public static List<Component> getAll(Components type) {
// 		List<Component> componentList = new ArrayList<>();
// 		for (Component component : components.values()) {
// 			if (component.componentType.equals(type)) {
// 				componentList.add(component);
// 			}
// 		}
// 		return componentList;
// 	}
// 	
// 	public synchronized static Component findOrCreate(String componentName, Components type) {
// 		Component component = null;
// 		
// 		for (Component testComponent : components.values()) {
// 			if (testComponent.componentName.equals(componentName) && testComponent.componentType.equals(type)) {
// 				component = testComponent;
// 				break;
// 			}
// 		}
// 		
// 		// Component not found, create
// 		if (component == null) {
// 			component = new Component();
// 			component.componentName = componentName;
// 			component.componentType = type;
// 			components.put(component.id, component);
// 			EventBus.post(component);
// 		}
// 		
// 		return component;
// 	}
// 	
// 	public static Component get(String id) {
// 		return components.get(id);
// 	}
// 	
// 	public static int getCount(Components type){
// 		return Component.getAll(type).size();
// 	}
// 
// }
// 
// Path: app/models/EventBus.java
// public class EventBus {
// 	static com.google.common.eventbus.EventBus eventBus = new com.google.common.eventbus.EventBus();
// 	
// 	/**
// 	 * Subscribe to the global event bus.
// 	 * See: http://codingjunkie.net/guava-eventbus/
// 	 * @param subscriber
// 	 */
// 	public static void subscribe(Object subscriber) {
// 		eventBus.register(subscriber);
// 	}
// 	
// 	/**
// 	 * Post events to the event bus. Can be any Object.
// 	 * See: http://codingjunkie.net/guava-eventbus/
// 	 * @param event
// 	 */
// 	public static void post(Object event) {
// 		eventBus.post(event);
// 	}
// }


import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import models.Component;
import models.EventBus;
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Multimap;
package models.datatypes;




public class Log implements DataType{
	
	static Multimap<Component, Log> logs = LinkedListMultimap.create();
	
	static int MAX_LOGS_PER_COMPONENT = 1000;
	
	public String id = UUID.randomUUID().toString();
// Path: app/models/Component.java
// public class Component {
// 	static Map<String, Component> components = new HashMap<String, Component>();
// 	
// 	public String id = UUID.randomUUID().toString();
// 	public String componentName;
// 	public Components componentType;
// 	public Date created = new Date();
// 	
// 	public static List<Component> getAll(Components type) {
// 		List<Component> componentList = new ArrayList<>();
// 		for (Component component : components.values()) {
// 			if (component.componentType.equals(type)) {
// 				componentList.add(component);
// 			}
// 		}
// 		return componentList;
// 	}
// 	
// 	public synchronized static Component findOrCreate(String componentName, Components type) {
// 		Component component = null;
// 		
// 		for (Component testComponent : components.values()) {
// 			if (testComponent.componentName.equals(componentName) && testComponent.componentType.equals(type)) {
// 				component = testComponent;
// 				break;
// 			}
// 		}
// 		
// 		// Component not found, create
// 		if (component == null) {
// 			component = new Component();
// 			component.componentName = componentName;
// 			component.componentType = type;
// 			components.put(component.id, component);
// 			EventBus.post(component);
// 		}
// 		
// 		return component;
// 	}
// 	
// 	public static Component get(String id) {
// 		return components.get(id);
// 	}
// 	
// 	public static int getCount(Components type){
// 		return Component.getAll(type).size();
// 	}
// 
// }
// 
// Path: app/models/EventBus.java
// public class EventBus {
// 	static com.google.common.eventbus.EventBus eventBus = new com.google.common.eventbus.EventBus();
// 	
// 	/**
// 	 * Subscribe to the global event bus.
// 	 * See: http://codingjunkie.net/guava-eventbus/
// 	 * @param subscriber
// 	 */
// 	public static void subscribe(Object subscriber) {
// 		eventBus.register(subscriber);
// 	}
// 	
// 	/**
// 	 * Post events to the event bus. Can be any Object.
// 	 * See: http://codingjunkie.net/guava-eventbus/
// 	 * @param event
// 	 */
// 	public static void post(Object event) {
// 		eventBus.post(event);
// 	}
// }


// Path: app/models/datatypes/Log.java
import java.util.ArrayList;
import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.UUID;
import models.Component;
import models.EventBus;
import com.google.common.collect.LinkedListMultimap;
import com.google.common.collect.Multimap;

package models.datatypes;




public class Log implements DataType{
	
	static Multimap<Component, Log> logs = LinkedListMultimap.create();
	
	static int MAX_LOGS_PER_COMPONENT = 1000;
	
	public String id = UUID.randomUUID().toString();
	public Component component;