Code cleanup and utility functions for plutolib
This commit is contained in:
parent
27c79917c5
commit
859a23cdc9
|
@ -0,0 +1,6 @@
|
||||||
|
package cz.tefek.pluto;
|
||||||
|
|
||||||
|
public class Pluto
|
||||||
|
{
|
||||||
|
public static final boolean DEBUG_MODE = Boolean.valueOf(System.getProperty("cz.tefek.pluto.debug"));
|
||||||
|
}
|
|
@ -8,12 +8,12 @@ import java.lang.annotation.Target;
|
||||||
|
|
||||||
import cz.tefek.pluto.eventsystem.EventData;
|
import cz.tefek.pluto.eventsystem.EventData;
|
||||||
|
|
||||||
@Retention(RUNTIME)
|
|
||||||
@Target(ANNOTATION_TYPE)
|
|
||||||
/**
|
/**
|
||||||
* @author 493msi
|
* @author 493msi
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
@Retention(RUNTIME)
|
||||||
|
@Target(ANNOTATION_TYPE)
|
||||||
public @interface StaticPlutoEvent
|
public @interface StaticPlutoEvent
|
||||||
{
|
{
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1,9 +1,6 @@
|
||||||
package cz.tefek.pluto.eventsystem.staticmode;
|
package cz.tefek.pluto.eventsystem.staticmode;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Map.Entry;
|
import java.util.Map.Entry;
|
||||||
|
|
||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
|
@ -28,8 +25,8 @@ import cz.tefek.pluto.io.logger.SmartSeverity;
|
||||||
*/
|
*/
|
||||||
public class StaticPlutoEventManager
|
public class StaticPlutoEventManager
|
||||||
{
|
{
|
||||||
private static Map<Class<? extends Annotation>, List<Method>> eventRegistry = new HashMap<Class<? extends Annotation>, List<Method>>();
|
private static Map<Class<? extends Annotation>, List<Method>> eventRegistry = new HashMap<>();
|
||||||
private static List<Method> orphans = new ArrayList<Method>();
|
private static List<Method> orphans = new ArrayList<>();
|
||||||
|
|
||||||
public static void registerEventHandler(Class<?> clazz)
|
public static void registerEventHandler(Class<?> clazz)
|
||||||
{
|
{
|
||||||
|
@ -81,9 +78,8 @@ public class StaticPlutoEventManager
|
||||||
Logger.log(SmartSeverity.EVENT_ERROR, "Annotation " + annotation.getCanonicalName() + " is already registered!");
|
Logger.log(SmartSeverity.EVENT_ERROR, "Annotation " + annotation.getCanonicalName() + " is already registered!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
else
|
|
||||||
{
|
eventRegistry.put(annotation, new ArrayList<>());
|
||||||
eventRegistry.put(annotation, new ArrayList<Method>());
|
|
||||||
|
|
||||||
Logger.log(SmartSeverity.EVENT_PLUS, "Event " + annotation.getCanonicalName() + " successfully registered!");
|
Logger.log(SmartSeverity.EVENT_PLUS, "Event " + annotation.getCanonicalName() + " successfully registered!");
|
||||||
|
|
||||||
|
@ -119,7 +115,7 @@ public class StaticPlutoEventManager
|
||||||
|
|
||||||
int orphansBefore = orphans.size();
|
int orphansBefore = orphans.size();
|
||||||
|
|
||||||
List<Method> foundParents = new ArrayList<Method>();
|
List<Method> foundParents = new ArrayList<>();
|
||||||
|
|
||||||
for (Method method : orphans)
|
for (Method method : orphans)
|
||||||
{
|
{
|
||||||
|
@ -140,7 +136,6 @@ public class StaticPlutoEventManager
|
||||||
|
|
||||||
Logger.log(SmartSeverity.EVENT_PLUS, orphansFound + " orphan method(s) was/were bound and " + (orphansBefore - orphans.size()) + " removed from the storage!");
|
Logger.log(SmartSeverity.EVENT_PLUS, orphansFound + " orphan method(s) was/were bound and " + (orphansBefore - orphans.size()) + " removed from the storage!");
|
||||||
}
|
}
|
||||||
}
|
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Logger.log(SmartSeverity.EVENT_ERROR, "Annotation " + annotation.getCanonicalName() + " is not annotated with @Event, can't register it.");
|
Logger.log(SmartSeverity.EVENT_ERROR, "Annotation " + annotation.getCanonicalName() + " is not annotated with @Event, can't register it.");
|
||||||
|
@ -171,30 +166,30 @@ public class StaticPlutoEventManager
|
||||||
Logger.log(SmartSeverity.EVENT_WARNING, "Method " + m.toGenericString() + " has no parameters, will not be invoked by event!");
|
Logger.log(SmartSeverity.EVENT_WARNING, "Method " + m.toGenericString() + " has no parameters, will not be invoked by event!");
|
||||||
}
|
}
|
||||||
|
|
||||||
for (int i = 0; i < params.length; i++)
|
for (int i = 0; i < params.length; i++) {
|
||||||
{
|
|
||||||
Class<?> parameter = params[i];
|
Class<?> parameter = params[i];
|
||||||
|
|
||||||
if (!EventData.class.isAssignableFrom(parameter))
|
if (!EventData.class.isAssignableFrom(parameter)) {
|
||||||
{
|
|
||||||
Logger.log(SmartSeverity.EVENT_ERROR, "Method " + m.toGenericString() + " contains invalid parameters. Only EventData instances are permitted.");
|
Logger.log(SmartSeverity.EVENT_ERROR, "Method " + m.toGenericString() + " contains invalid parameters. Only EventData instances are permitted.");
|
||||||
mostSuitableParam = null;
|
mostSuitableParam = null;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (mostSuitableParam == null && parameter.isInstance(data))
|
if (parameter.isInstance(data))
|
||||||
|
{
|
||||||
|
if (mostSuitableParam == null)
|
||||||
{
|
{
|
||||||
mostSuitableParam = parameter;
|
mostSuitableParam = parameter;
|
||||||
paramOut[i] = data;
|
paramOut[i] = data;
|
||||||
}
|
}
|
||||||
|
else if (mostSuitableParam.isAssignableFrom(parameter))
|
||||||
if (parameter.isInstance(data) && mostSuitableParam.isAssignableFrom(parameter))
|
|
||||||
{
|
{
|
||||||
mostSuitableParam = parameter;
|
mostSuitableParam = parameter;
|
||||||
paramOut = new EventData[params.length];
|
Arrays.fill(paramOut, 0, i, null);
|
||||||
paramOut[i] = data;
|
paramOut[i] = data;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (mostSuitableParam != null)
|
if (mostSuitableParam != null)
|
||||||
{
|
{
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
package cz.tefek.pluto.io.asl.resource;
|
package cz.tefek.pluto.io.asl.resource;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.file.Files;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Doesn't do much right now. Just holds the default resource location.
|
* Helper functions for {@link ResourceAddress}es.
|
||||||
*
|
*
|
||||||
* @author 493msi
|
* @author 493msi
|
||||||
*/
|
*/
|
||||||
|
@ -9,4 +12,19 @@ public class ResourceHelper
|
||||||
{
|
{
|
||||||
public static final String GLOBAL_ROOT = "";
|
public static final String GLOBAL_ROOT = "";
|
||||||
public static final String DEFAULT_RESOURCE_ROOT = GLOBAL_ROOT + "data";
|
public static final String DEFAULT_RESOURCE_ROOT = GLOBAL_ROOT + "data";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the size of the file denoted by {@link ResourceAddress}
|
||||||
|
*
|
||||||
|
* @param addr The input {@link ResourceAddress}
|
||||||
|
*
|
||||||
|
* @throws IOException On I/O errors.
|
||||||
|
*
|
||||||
|
* @return the file size
|
||||||
|
* @since 0.3
|
||||||
|
*/
|
||||||
|
public static long fileSize(ResourceAddress addr) throws IOException
|
||||||
|
{
|
||||||
|
return Files.size(addr.toNIOPath());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue