From ffbb0eb24842e51aa3b3a6965b0d176a76a01c4d Mon Sep 17 00:00:00 2001 From: Kyle Gunger Date: Mon, 18 Nov 2019 23:20:53 -0500 Subject: [Update] Change class path from corecg.transit to transit --- LICENSE | 121 --------------------- README.md | 16 --- gradle.properties | 6 +- .../java/net/corecg/transit/impl/IAcceptor.java | 13 --- .../java/net/corecg/transit/impl/IConsumer.java | 10 -- .../java/net/corecg/transit/impl/IGenerator.java | 10 -- .../java/net/corecg/transit/impl/IProvider.java | 17 --- .../java/net/corecg/transit/type/IBaseType.java | 7 -- src/main/java/net/corecg/transit/type/IType.java | 10 -- .../net/corecg/transit/type/typebase/MetaBase.java | 26 ----- .../corecg/transit/type/typebase/NumberBase.java | 18 --- .../corecg/transit/type/typebase/StringBase.java | 18 --- .../corecg/transit/type/typegroup/TypeGroup.java | 53 --------- .../transit/type/typegroup/TypeRegister.java | 42 ------- src/main/java/net/transit/impl/IAcceptor.java | 13 +++ src/main/java/net/transit/impl/IConsumer.java | 10 ++ src/main/java/net/transit/impl/IGenerator.java | 10 ++ src/main/java/net/transit/impl/IProvider.java | 17 +++ src/main/java/net/transit/type/IBaseType.java | 7 ++ src/main/java/net/transit/type/IType.java | 10 ++ .../java/net/transit/type/typebase/MetaBase.java | 26 +++++ .../java/net/transit/type/typebase/NumberBase.java | 18 +++ .../java/net/transit/type/typebase/StringBase.java | 18 +++ .../java/net/transit/type/typegroup/TypeGroup.java | 53 +++++++++ .../net/transit/type/typegroup/TypeRegister.java | 42 +++++++ 25 files changed, 227 insertions(+), 364 deletions(-) delete mode 100644 LICENSE delete mode 100644 README.md delete mode 100644 src/main/java/net/corecg/transit/impl/IAcceptor.java delete mode 100644 src/main/java/net/corecg/transit/impl/IConsumer.java delete mode 100644 src/main/java/net/corecg/transit/impl/IGenerator.java delete mode 100644 src/main/java/net/corecg/transit/impl/IProvider.java delete mode 100644 src/main/java/net/corecg/transit/type/IBaseType.java delete mode 100644 src/main/java/net/corecg/transit/type/IType.java delete mode 100644 src/main/java/net/corecg/transit/type/typebase/MetaBase.java delete mode 100644 src/main/java/net/corecg/transit/type/typebase/NumberBase.java delete mode 100644 src/main/java/net/corecg/transit/type/typebase/StringBase.java delete mode 100644 src/main/java/net/corecg/transit/type/typegroup/TypeGroup.java delete mode 100644 src/main/java/net/corecg/transit/type/typegroup/TypeRegister.java create mode 100644 src/main/java/net/transit/impl/IAcceptor.java create mode 100644 src/main/java/net/transit/impl/IConsumer.java create mode 100644 src/main/java/net/transit/impl/IGenerator.java create mode 100644 src/main/java/net/transit/impl/IProvider.java create mode 100644 src/main/java/net/transit/type/IBaseType.java create mode 100644 src/main/java/net/transit/type/IType.java create mode 100644 src/main/java/net/transit/type/typebase/MetaBase.java create mode 100644 src/main/java/net/transit/type/typebase/NumberBase.java create mode 100644 src/main/java/net/transit/type/typebase/StringBase.java create mode 100644 src/main/java/net/transit/type/typegroup/TypeGroup.java create mode 100644 src/main/java/net/transit/type/typegroup/TypeRegister.java diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 0e259d4..0000000 --- a/LICENSE +++ /dev/null @@ -1,121 +0,0 @@ -Creative Commons Legal Code - -CC0 1.0 Universal - - CREATIVE COMMONS CORPORATION IS NOT A LAW FIRM AND DOES NOT PROVIDE - LEGAL SERVICES. DISTRIBUTION OF THIS DOCUMENT DOES NOT CREATE AN - ATTORNEY-CLIENT RELATIONSHIP. CREATIVE COMMONS PROVIDES THIS - INFORMATION ON AN "AS-IS" BASIS. CREATIVE COMMONS MAKES NO WARRANTIES - REGARDING THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS - PROVIDED HEREUNDER, AND DISCLAIMS LIABILITY FOR DAMAGES RESULTING FROM - THE USE OF THIS DOCUMENT OR THE INFORMATION OR WORKS PROVIDED - HEREUNDER. - -Statement of Purpose - -The laws of most jurisdictions throughout the world automatically confer -exclusive Copyright and Related Rights (defined below) upon the creator -and subsequent owner(s) (each and all, an "owner") of an original work of -authorship and/or a database (each, a "Work"). - -Certain owners wish to permanently relinquish those rights to a Work for -the purpose of contributing to a commons of creative, cultural and -scientific works ("Commons") that the public can reliably and without fear -of later claims of infringement build upon, modify, incorporate in other -works, reuse and redistribute as freely as possible in any form whatsoever -and for any purposes, including without limitation commercial purposes. -These owners may contribute to the Commons to promote the ideal of a free -culture and the further production of creative, cultural and scientific -works, or to gain reputation or greater distribution for their Work in -part through the use and efforts of others. - -For these and/or other purposes and motivations, and without any -expectation of additional consideration or compensation, the person -associating CC0 with a Work (the "Affirmer"), to the extent that he or she -is an owner of Copyright and Related Rights in the Work, voluntarily -elects to apply CC0 to the Work and publicly distribute the Work under its -terms, with knowledge of his or her Copyright and Related Rights in the -Work and the meaning and intended legal effect of CC0 on those rights. - -1. Copyright and Related Rights. A Work made available under CC0 may be -protected by copyright and related or neighboring rights ("Copyright and -Related Rights"). Copyright and Related Rights include, but are not -limited to, the following: - - i. the right to reproduce, adapt, distribute, perform, display, - communicate, and translate a Work; - ii. moral rights retained by the original author(s) and/or performer(s); -iii. publicity and privacy rights pertaining to a person's image or - likeness depicted in a Work; - iv. rights protecting against unfair competition in regards to a Work, - subject to the limitations in paragraph 4(a), below; - v. rights protecting the extraction, dissemination, use and reuse of data - in a Work; - vi. database rights (such as those arising under Directive 96/9/EC of the - European Parliament and of the Council of 11 March 1996 on the legal - protection of databases, and under any national implementation - thereof, including any amended or successor version of such - directive); and -vii. other similar, equivalent or corresponding rights throughout the - world based on applicable law or treaty, and any national - implementations thereof. - -2. Waiver. To the greatest extent permitted by, but not in contravention -of, applicable law, Affirmer hereby overtly, fully, permanently, -irrevocably and unconditionally waives, abandons, and surrenders all of -Affirmer's Copyright and Related Rights and associated claims and causes -of action, whether now known or unknown (including existing as well as -future claims and causes of action), in the Work (i) in all territories -worldwide, (ii) for the maximum duration provided by applicable law or -treaty (including future time extensions), (iii) in any current or future -medium and for any number of copies, and (iv) for any purpose whatsoever, -including without limitation commercial, advertising or promotional -purposes (the "Waiver"). Affirmer makes the Waiver for the benefit of each -member of the public at large and to the detriment of Affirmer's heirs and -successors, fully intending that such Waiver shall not be subject to -revocation, rescission, cancellation, termination, or any other legal or -equitable action to disrupt the quiet enjoyment of the Work by the public -as contemplated by Affirmer's express Statement of Purpose. - -3. Public License Fallback. Should any part of the Waiver for any reason -be judged legally invalid or ineffective under applicable law, then the -Waiver shall be preserved to the maximum extent permitted taking into -account Affirmer's express Statement of Purpose. In addition, to the -extent the Waiver is so judged Affirmer hereby grants to each affected -person a royalty-free, non transferable, non sublicensable, non exclusive, -irrevocable and unconditional license to exercise Affirmer's Copyright and -Related Rights in the Work (i) in all territories worldwide, (ii) for the -maximum duration provided by applicable law or treaty (including future -time extensions), (iii) in any current or future medium and for any number -of copies, and (iv) for any purpose whatsoever, including without -limitation commercial, advertising or promotional purposes (the -"License"). The License shall be deemed effective as of the date CC0 was -applied by Affirmer to the Work. Should any part of the License for any -reason be judged legally invalid or ineffective under applicable law, such -partial invalidity or ineffectiveness shall not invalidate the remainder -of the License, and in such case Affirmer hereby affirms that he or she -will not (i) exercise any of his or her remaining Copyright and Related -Rights in the Work or (ii) assert any associated claims and causes of -action with respect to the Work, in either case contrary to Affirmer's -express Statement of Purpose. - -4. Limitations and Disclaimers. - - a. No trademark or patent rights held by Affirmer are waived, abandoned, - surrendered, licensed or otherwise affected by this document. - b. Affirmer offers the Work as-is and makes no representations or - warranties of any kind concerning the Work, express, implied, - statutory or otherwise, including without limitation warranties of - title, merchantability, fitness for a particular purpose, non - infringement, or the absence of latent or other defects, accuracy, or - the present or absence of errors, whether or not discoverable, all to - the greatest extent permissible under applicable law. - c. Affirmer disclaims responsibility for clearing rights of other persons - that may apply to the Work or any use thereof, including without - limitation any person's Copyright and Related Rights in the Work. - Further, Affirmer disclaims responsibility for obtaining any necessary - consents, permissions or other rights required for any use of the - Work. - d. Affirmer understands and acknowledges that Creative Commons is not a - party to this document and has no duty or obligation with respect to - this CC0 or use of the Work. diff --git a/README.md b/README.md deleted file mode 100644 index 10fc90e..0000000 --- a/README.md +++ /dev/null @@ -1,16 +0,0 @@ -# Fabric Example Mod - -## Setup - -1. Edit build.gradle and mod.json to suit your needs. - * The "mixins" object can be removed from mod.json if you do not need to use mixins. - * Please replace all occurences of "modid" with your own mod ID - sometimes, a different string may also suffice. -2. Run the following command: - -``` -./gradlew idea -``` - -## License - -This template is available under the CC0 license. Feel free to learn from it and incorporate it in your own projects. diff --git a/gradle.properties b/gradle.properties index 6d98c9a..a58ba41 100644 --- a/gradle.properties +++ b/gradle.properties @@ -8,9 +8,9 @@ org.gradle.jvmargs=-Xmx1G loader_version=0.6.1+build.164 # Mod Properties - mod_version = 1.0.0 - maven_group = net.corecg - archives_base_name = corecg-transfer + mod_version = 0.0.2 + maven_group = net.transit + archives_base_name = transit-api # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api diff --git a/src/main/java/net/corecg/transit/impl/IAcceptor.java b/src/main/java/net/corecg/transit/impl/IAcceptor.java deleted file mode 100644 index 2561a04..0000000 --- a/src/main/java/net/corecg/transit/impl/IAcceptor.java +++ /dev/null @@ -1,13 +0,0 @@ -package net.corecg.transit.impl; - -import net.corecg.transit.type.IType; -import net.minecraft.util.math.Direction; - -public interface IAcceptor> -{ - // Direction given if acceptor is a block - public boolean canAccept(Direction d); - - // Accept (or not) a provided T (should trigger ITransferEvent) - public boolean accept(T provided); -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/impl/IConsumer.java b/src/main/java/net/corecg/transit/impl/IConsumer.java deleted file mode 100644 index cca2b5c..0000000 --- a/src/main/java/net/corecg/transit/impl/IConsumer.java +++ /dev/null @@ -1,10 +0,0 @@ -package net.corecg.transit.impl; - -import net.corecg.transit.type.IType; - -public interface IConsumer> extends IAcceptor -{ - public boolean canConsume(); - - -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/impl/IGenerator.java b/src/main/java/net/corecg/transit/impl/IGenerator.java deleted file mode 100644 index e8aa791..0000000 --- a/src/main/java/net/corecg/transit/impl/IGenerator.java +++ /dev/null @@ -1,10 +0,0 @@ -package net.corecg.transit.impl; - -import net.corecg.transit.type.IType; - -public interface IGenerator> extends IProvider -{ - public boolean canGenerate(); - - -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/impl/IProvider.java b/src/main/java/net/corecg/transit/impl/IProvider.java deleted file mode 100644 index 082ef07..0000000 --- a/src/main/java/net/corecg/transit/impl/IProvider.java +++ /dev/null @@ -1,17 +0,0 @@ -package net.corecg.transit.impl; - -import net.corecg.transit.type.IType; -import net.minecraft.util.math.Direction; - -public interface IProvider> -{ - - // Direction given if provider is a block - public boolean canProvide(Direction d); - - // Provide the next T (should trigger ITransferEvent) - public T provide(); - - // Retain the rejected T if the acceptor did not accept it (should trigger ITransferEvent) - public void accept(T rejected); -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/type/IBaseType.java b/src/main/java/net/corecg/transit/type/IBaseType.java deleted file mode 100644 index 4cf5ada..0000000 --- a/src/main/java/net/corecg/transit/type/IBaseType.java +++ /dev/null @@ -1,7 +0,0 @@ -package net.corecg.transit.type; - -public interface IBaseType -{ - - public T getData(); -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/type/IType.java b/src/main/java/net/corecg/transit/type/IType.java deleted file mode 100644 index c7b1854..0000000 --- a/src/main/java/net/corecg/transit/type/IType.java +++ /dev/null @@ -1,10 +0,0 @@ -package net.corecg.transit.type; - -public interface IType extends IBaseType -{ - public String getTypeName(); - - public IBaseType convertToBase(); - - public IType convertFromBase(IBaseType base); -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/type/typebase/MetaBase.java b/src/main/java/net/corecg/transit/type/typebase/MetaBase.java deleted file mode 100644 index b890e54..0000000 --- a/src/main/java/net/corecg/transit/type/typebase/MetaBase.java +++ /dev/null @@ -1,26 +0,0 @@ -package net.corecg.transit.type.typebase; - -import net.corecg.transit.type.IBaseType; - -public class MetaBase> implements IBaseType -{ - private T data; - private String metaData; - - public MetaBase(T dat, String meta) - { - data = dat; - metaData = meta; - } - - public T getData() - { - return data; - } - - public String getMetaData() - { - return metaData; - } - -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/type/typebase/NumberBase.java b/src/main/java/net/corecg/transit/type/typebase/NumberBase.java deleted file mode 100644 index 5f30cf2..0000000 --- a/src/main/java/net/corecg/transit/type/typebase/NumberBase.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.corecg.transit.type.typebase; - -import net.corecg.transit.type.IBaseType; - -public class NumberBase implements IBaseType -{ - private Number data; - - public NumberBase(Number dat) - { - data = dat; - } - - public Number getData() - { - return data; - } -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/type/typebase/StringBase.java b/src/main/java/net/corecg/transit/type/typebase/StringBase.java deleted file mode 100644 index 1e2e4b8..0000000 --- a/src/main/java/net/corecg/transit/type/typebase/StringBase.java +++ /dev/null @@ -1,18 +0,0 @@ -package net.corecg.transit.type.typebase; - -import net.corecg.transit.type.IBaseType; - -public class StringBase implements IBaseType -{ - private String data; - - public StringBase(String dat) - { - data = dat; - } - - public String getData() - { - return data; - } -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/type/typegroup/TypeGroup.java b/src/main/java/net/corecg/transit/type/typegroup/TypeGroup.java deleted file mode 100644 index d5a8101..0000000 --- a/src/main/java/net/corecg/transit/type/typegroup/TypeGroup.java +++ /dev/null @@ -1,53 +0,0 @@ -package net.corecg.transit.type.typegroup; - -import java.util.ArrayList; - -import net.corecg.transit.type.IType; -import net.corecg.transit.type.IBaseType; - -public class TypeGroup -{ - private IBaseType baseType; - - private String groupName; - - private ArrayList> types; - - /**Create a new TypeGroup - * - * @param base The base type of the group. - * @param name The identifier of the group. Should be in all caps. - */ - public TypeGroup(IBaseType base, String name) - { - baseType = base; - types = new ArrayList>(0); - groupName = name; - } - - // Return the base type - public IBaseType getBaseType() - { - return baseType; - } - - // Returns if the type is supported by the group - public boolean hasType(IType t) - { - - for(IType gtype : types) - { - - if(t.getTypeName() == gtype.getTypeName()) return true; - } - - return false; - } - - // Group name/identifier - public String getGroupName() - { - - return groupName; - } -} \ No newline at end of file diff --git a/src/main/java/net/corecg/transit/type/typegroup/TypeRegister.java b/src/main/java/net/corecg/transit/type/typegroup/TypeRegister.java deleted file mode 100644 index 4791e5b..0000000 --- a/src/main/java/net/corecg/transit/type/typegroup/TypeRegister.java +++ /dev/null @@ -1,42 +0,0 @@ -package net.corecg.transit.type.typegroup; - -import java.util.ArrayList; - -import net.corecg.transit.type.IType; - -public final class TypeRegister -{ - private TypeRegister(){} - - // Hold all the groups - private static ArrayList> groups = new ArrayList>(0); - - // Add a group - public static void addTypeGroup(TypeGroup g) - { - if(getTypeGroup(g.getGroupName()) == null) return; - - groups.add(g); - } - - // Get a group by it's identifier - public static TypeGroup getTypeGroup(String name) - { - for(TypeGroup g : groups) - { - if(g.getGroupName().toUpperCase() == name.toUpperCase()) return g; - } - - return null; - } - - public static String groupOf(IType t) - { - for(TypeGroup g : groups) - { - if(g.hasType(t)) return g.getGroupName(); - } - - return null; - } -} \ No newline at end of file diff --git a/src/main/java/net/transit/impl/IAcceptor.java b/src/main/java/net/transit/impl/IAcceptor.java new file mode 100644 index 0000000..9433ea3 --- /dev/null +++ b/src/main/java/net/transit/impl/IAcceptor.java @@ -0,0 +1,13 @@ +package net.transit.impl; + +import net.transit.type.IType; +import net.minecraft.util.math.Direction; + +public interface IAcceptor> +{ + // Direction given if acceptor is a block + public boolean canAccept(Direction d); + + // Accept (or not) a provided T (should trigger ITransferEvent) + public boolean accept(T provided); +} \ No newline at end of file diff --git a/src/main/java/net/transit/impl/IConsumer.java b/src/main/java/net/transit/impl/IConsumer.java new file mode 100644 index 0000000..d709430 --- /dev/null +++ b/src/main/java/net/transit/impl/IConsumer.java @@ -0,0 +1,10 @@ +package net.transit.impl; + +import net.transit.type.IType; + +public interface IConsumer> extends IAcceptor +{ + public boolean canConsume(); + + +} \ No newline at end of file diff --git a/src/main/java/net/transit/impl/IGenerator.java b/src/main/java/net/transit/impl/IGenerator.java new file mode 100644 index 0000000..009f268 --- /dev/null +++ b/src/main/java/net/transit/impl/IGenerator.java @@ -0,0 +1,10 @@ +package net.transit.impl; + +import net.transit.type.IType; + +public interface IGenerator> extends IProvider +{ + public boolean canGenerate(); + + +} \ No newline at end of file diff --git a/src/main/java/net/transit/impl/IProvider.java b/src/main/java/net/transit/impl/IProvider.java new file mode 100644 index 0000000..b613436 --- /dev/null +++ b/src/main/java/net/transit/impl/IProvider.java @@ -0,0 +1,17 @@ +package net.transit.impl; + +import net.transit.type.IType; +import net.minecraft.util.math.Direction; + +public interface IProvider> +{ + + // Direction given if provider is a block + public boolean canProvide(Direction d); + + // Provide the next T (should trigger ITransferEvent) + public T provide(); + + // Retain the rejected T if the acceptor did not accept it (should trigger ITransferEvent) + public void accept(T rejected); +} \ No newline at end of file diff --git a/src/main/java/net/transit/type/IBaseType.java b/src/main/java/net/transit/type/IBaseType.java new file mode 100644 index 0000000..99ec178 --- /dev/null +++ b/src/main/java/net/transit/type/IBaseType.java @@ -0,0 +1,7 @@ +package net.transit.type; + +public interface IBaseType +{ + + public T getData(); +} \ No newline at end of file diff --git a/src/main/java/net/transit/type/IType.java b/src/main/java/net/transit/type/IType.java new file mode 100644 index 0000000..ff401f1 --- /dev/null +++ b/src/main/java/net/transit/type/IType.java @@ -0,0 +1,10 @@ +package net.transit.type; + +public interface IType extends IBaseType +{ + public String getTypeName(); + + public IBaseType convertToBase(); + + public IType convertFromBase(IBaseType base); +} \ No newline at end of file diff --git a/src/main/java/net/transit/type/typebase/MetaBase.java b/src/main/java/net/transit/type/typebase/MetaBase.java new file mode 100644 index 0000000..fdf69a8 --- /dev/null +++ b/src/main/java/net/transit/type/typebase/MetaBase.java @@ -0,0 +1,26 @@ +package net.transit.type.typebase; + +import net.transit.type.IBaseType; + +public class MetaBase> implements IBaseType +{ + private T data; + private String metaData; + + public MetaBase(T dat, String meta) + { + data = dat; + metaData = meta; + } + + public T getData() + { + return data; + } + + public String getMetaData() + { + return metaData; + } + +} \ No newline at end of file diff --git a/src/main/java/net/transit/type/typebase/NumberBase.java b/src/main/java/net/transit/type/typebase/NumberBase.java new file mode 100644 index 0000000..2a3c013 --- /dev/null +++ b/src/main/java/net/transit/type/typebase/NumberBase.java @@ -0,0 +1,18 @@ +package net.transit.type.typebase; + +import net.transit.type.IBaseType; + +public class NumberBase implements IBaseType +{ + private Number data; + + public NumberBase(Number dat) + { + data = dat; + } + + public Number getData() + { + return data; + } +} \ No newline at end of file diff --git a/src/main/java/net/transit/type/typebase/StringBase.java b/src/main/java/net/transit/type/typebase/StringBase.java new file mode 100644 index 0000000..c1e32fe --- /dev/null +++ b/src/main/java/net/transit/type/typebase/StringBase.java @@ -0,0 +1,18 @@ +package net.transit.type.typebase; + +import net.transit.type.IBaseType; + +public class StringBase implements IBaseType +{ + private String data; + + public StringBase(String dat) + { + data = dat; + } + + public String getData() + { + return data; + } +} \ No newline at end of file diff --git a/src/main/java/net/transit/type/typegroup/TypeGroup.java b/src/main/java/net/transit/type/typegroup/TypeGroup.java new file mode 100644 index 0000000..4524ae0 --- /dev/null +++ b/src/main/java/net/transit/type/typegroup/TypeGroup.java @@ -0,0 +1,53 @@ +package net.transit.type.typegroup; + +import java.util.ArrayList; + +import net.transit.type.IType; +import net.transit.type.IBaseType; + +public class TypeGroup +{ + private IBaseType baseType; + + private String groupName; + + private ArrayList> types; + + /**Create a new TypeGroup + * + * @param base The base type of the group. + * @param name The identifier of the group. Should be in all caps. + */ + public TypeGroup(IBaseType base, String name) + { + baseType = base; + types = new ArrayList>(0); + groupName = name; + } + + // Return the base type + public IBaseType getBaseType() + { + return baseType; + } + + // Returns if the type is supported by the group + public boolean hasType(IType t) + { + + for(IType gtype : types) + { + + if(t.getTypeName() == gtype.getTypeName()) return true; + } + + return false; + } + + // Group name/identifier + public String getGroupName() + { + + return groupName; + } +} \ No newline at end of file diff --git a/src/main/java/net/transit/type/typegroup/TypeRegister.java b/src/main/java/net/transit/type/typegroup/TypeRegister.java new file mode 100644 index 0000000..8de81a6 --- /dev/null +++ b/src/main/java/net/transit/type/typegroup/TypeRegister.java @@ -0,0 +1,42 @@ +package net.transit.type.typegroup; + +import java.util.ArrayList; + +import net.transit.type.IType; + +public final class TypeRegister +{ + private TypeRegister(){} + + // Hold all the groups + private static ArrayList> groups = new ArrayList>(0); + + // Add a group + public static void addTypeGroup(TypeGroup g) + { + if(getTypeGroup(g.getGroupName()) == null) return; + + groups.add(g); + } + + // Get a group by it's identifier + public static TypeGroup getTypeGroup(String name) + { + for(TypeGroup g : groups) + { + if(g.getGroupName().toUpperCase() == name.toUpperCase()) return g; + } + + return null; + } + + public static String groupOf(IType t) + { + for(TypeGroup g : groups) + { + if(g.hasType(t)) return g.getGroupName(); + } + + return null; + } +} \ No newline at end of file -- cgit v1.2.3