From 212703f7107b73f0a0625098f9354bf575171255 Mon Sep 17 00:00:00 2001 From: Stanislav Usenkov Date: Fri, 5 Aug 2016 12:26:35 +0700 Subject: [PATCH] Reorganize Row classes. --- .../rscPermissions/API/ConditionalRow.java | 8 +++++ .../rscPermissions/API/GenericRow.java | 21 +++++++++++++ .../rscPermissions/API/RowEntity.java | 22 ++------------ .../rscPermissions/API/RowInheritance.java | 30 ++++--------------- .../rscPermissions/API/RowPermission.java | 27 +++-------------- 5 files changed, 42 insertions(+), 66 deletions(-) create mode 100644 src/main/java/ru/simsonic/rscPermissions/API/ConditionalRow.java create mode 100644 src/main/java/ru/simsonic/rscPermissions/API/GenericRow.java diff --git a/src/main/java/ru/simsonic/rscPermissions/API/ConditionalRow.java b/src/main/java/ru/simsonic/rscPermissions/API/ConditionalRow.java new file mode 100644 index 0000000..b27466d --- /dev/null +++ b/src/main/java/ru/simsonic/rscPermissions/API/ConditionalRow.java @@ -0,0 +1,8 @@ +package ru.simsonic.rscPermissions.API; + +public abstract class ConditionalRow extends GenericRow +{ + public Destination destination; + public transient String destinationSource; + public int expirience; +} diff --git a/src/main/java/ru/simsonic/rscPermissions/API/GenericRow.java b/src/main/java/ru/simsonic/rscPermissions/API/GenericRow.java new file mode 100644 index 0000000..fc99877 --- /dev/null +++ b/src/main/java/ru/simsonic/rscPermissions/API/GenericRow.java @@ -0,0 +1,21 @@ +package ru.simsonic.rscPermissions.API; + +import java.sql.Timestamp; + +public abstract class GenericRow +{ + public int id; + public transient String splittedId; + public String entity; + public EntityType entityType; + public transient PlayerType playerType; + public Timestamp lifetime; + public boolean isMappedInDB() + { + return splittedId != null && !"".equals(splittedId); + } + public boolean hasClonesInRow() + { + return splittedId != null && splittedId.contains(Settings.SPLITTED_ID_SEP); + } +} diff --git a/src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java b/src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java index 395d3ba..0f03929 100644 --- a/src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java +++ b/src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java @@ -1,27 +1,11 @@ package ru.simsonic.rscPermissions.API; -import java.sql.Timestamp; - -public class RowEntity implements Cloneable, Comparable +public final class RowEntity extends GenericRow implements Cloneable, Comparable { - public int id; - public String entity; - public EntityType entityType; - public String prefix; - public String suffix; - public Timestamp lifetime; - public transient String splittedId; - public transient PlayerType playerType; + public String prefix; + public String suffix; public transient RowPermission[] permissions; public transient RowInheritance[] inheritance; - public boolean isMappedInDB() - { - return splittedId != null && !"".equals(splittedId); - } - public boolean hasClonesInRow() - { - return splittedId != null && splittedId.contains(Settings.SPLITTED_ID_SEP); - } @Override public RowEntity clone() throws CloneNotSupportedException { diff --git a/src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java b/src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java index a1bd81d..6a186ff 100644 --- a/src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java +++ b/src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java @@ -1,25 +1,15 @@ package ru.simsonic.rscPermissions.API; -import java.sql.Timestamp; import java.util.Arrays; import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes; -public class RowInheritance implements Cloneable, Comparable +public final class RowInheritance extends ConditionalRow implements Cloneable, Comparable { - public int id; - public String entity; - public String parent; - public String instance; - public EntityType childType; - public int priority; - public Destination destination; - public int expirience; - public Timestamp lifetime; - public transient String splittedId; - public transient PlayerType playerType; - public transient String destinationSource; - public transient RowEntity entityChild; - public transient RowEntity entityParent; + public String parent; + public String instance; + public int priority; + public transient RowEntity entityChild; + public transient RowEntity entityParent; public void deriveInstance() { if(parent != null) @@ -38,14 +28,6 @@ public class RowInheritance implements Cloneable, Comparable { return this.parent + (instance.isEmpty() ? "" : "." + instance); } - public boolean isMappedInDB() - { - return splittedId != null && !"".equals(splittedId); - } - public boolean hasClonesInRow() - { - return splittedId != null && splittedId.contains(Settings.SPLITTED_ID_SEP); - } @Override public RowInheritance clone() throws CloneNotSupportedException { diff --git a/src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java b/src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java index 11f0e2c..b67bfce 100644 --- a/src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java +++ b/src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java @@ -1,29 +1,10 @@ package ru.simsonic.rscPermissions.API; -import java.sql.Timestamp; - -public class RowPermission implements Cloneable, Comparable +public final class RowPermission extends ConditionalRow implements Cloneable, Comparable { - public int id; - public String entity; - public EntityType entityType; - public String permission; - public boolean value; - public Destination destination; - public int expirience; - public Timestamp lifetime; - public transient String splittedId; - public transient PlayerType playerType; - public transient String destinationSource; - public transient RowEntity entityObject; - public boolean isMappedInDB() - { - return splittedId != null && !"".equals(splittedId); - } - public boolean hasClonesInRow() - { - return splittedId != null && splittedId.contains(Settings.SPLITTED_ID_SEP); - } + public String permission; + public boolean value; + public transient RowEntity entityObject; @Override public RowPermission clone() throws CloneNotSupportedException {