summaryrefslogtreecommitdiff
path: root/src/main/java/net
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/net')
-rw-r--r--src/main/java/net/corechg/transit/type/group/GroupRegistry.java15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/main/java/net/corechg/transit/type/group/GroupRegistry.java b/src/main/java/net/corechg/transit/type/group/GroupRegistry.java
index 3929973..0b04913 100644
--- a/src/main/java/net/corechg/transit/type/group/GroupRegistry.java
+++ b/src/main/java/net/corechg/transit/type/group/GroupRegistry.java
@@ -30,20 +30,27 @@ public class GroupRegistry {
return true;
}
- public static final TypeGroup<?> groupByID(String groupID)
+ @SuppressWarnings("unchecked")
+ public static final <T> TypeGroup<T> groupByID(String groupID)
{
for(TypeGroup<?> g : GROUPS)
{
- if(g.getGroup().equals(groupID)) return g;
+ if(g.getGroup().equals(groupID)){
+ try{
+ return (TypeGroup<T>) g;
+ }catch(ClassCastException e) {
+ return null;
+ }
+ }
}
return null;
}
- public static final Type<?> typeByIdentity(String groupID, String typeID)
+ public static final <T> Type<T> typeByIdentity(String groupID, String typeID)
{
- return groupByID(groupID).getType(typeID);
+ return GroupRegistry.<T>groupByID(groupID).getType(typeID);
}
}