package com.amaya.game.entities.modifiers; import java.util.Collection; import java.util.Iterator; /** Base class. Change mandate/request. */ public abstract class Mandate { /* [ MEMBERS ] =========================================================================================================================================== */ /** field or event name. */ public final String Name; /** Time of command creation. */ public final float Timestamp = System.currentTimeMillis(); /* [ CONSTRUCTORS ] ====================================================================================================================================== */ /** * Hidden constructor. use static methods for instance creation. * * @param name the name of the field or event */ protected Mandate(final String name) { Name = name; } /** {@inheritDoc} */ @Override public String toString() { return "{name: " + Name + "}"; } /* [ STATIC METHODS ] ==================================================================================================================================== */ /** find in commands collection first item of defined type. */ public static <T extends Mandate> T findFirst(final Collection<Mandate> mandates, final Class<T> clazz) { final Iterator<Mandate> iterator = mandates.iterator(); while (iterator.hasNext()) { final Mandate cmd = iterator.next(); if (clazz.isAssignableFrom(cmd.getClass())) { return (T) cmd; } } return null; } }