Browse Source

Give unique identifier to each row after normalization in the form "id:subId".

master
Stanislav Usenkov 9 years ago
parent
commit
1a2a17c2ca
  1. 1
      src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java
  2. 1
      src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java
  3. 1
      src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java
  4. 1
      src/main/java/ru/simsonic/rscPermissions/API/Settings.java
  5. 10
      src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseContents.java

1
src/main/java/ru/simsonic/rscPermissions/API/RowEntity.java

@ -5,6 +5,7 @@ import java.sql.Timestamp;
public class RowEntity implements Cloneable, Comparable<RowEntity>
{
public int id;
public String splittedId;
public String entity;
public EntityType entityType;
public String prefix;

1
src/main/java/ru/simsonic/rscPermissions/API/RowInheritance.java

@ -7,6 +7,7 @@ import ru.simsonic.rscMinecraftLibrary.Bukkit.GenericChatCodes;
public class RowInheritance implements Cloneable, Comparable<RowInheritance>
{
public int id;
public String splittedId;
public String entity;
public String parent;
public String instance;

1
src/main/java/ru/simsonic/rscPermissions/API/RowPermission.java

@ -5,6 +5,7 @@ import java.sql.Timestamp;
public class RowPermission implements Cloneable
{
public int id;
public String splittedId;
public String entity;
public EntityType entityType;
public String permission;

1
src/main/java/ru/simsonic/rscPermissions/API/Settings.java

@ -12,6 +12,7 @@ public interface Settings
public static final String INSTANTIATOR = "?";
public static final String TEXT_INHERITER = "%";
public static final char GROUP_LEVEL_TAB = '┏';
public static final String SPLITTED_ID_SEP = ":";
public void onLoad();
public void onEnable();
public String getDefaultGroup();

10
src/main/java/ru/simsonic/rscPermissions/Engine/Backends/DatabaseContents.java

@ -7,6 +7,7 @@ import ru.simsonic.rscPermissions.API.PlayerType;
import ru.simsonic.rscPermissions.API.RowEntity;
import ru.simsonic.rscPermissions.API.RowInheritance;
import ru.simsonic.rscPermissions.API.RowPermission;
import ru.simsonic.rscPermissions.API.Settings;
import ru.simsonic.rscPermissions.Engine.Matchers;
public class DatabaseContents
@ -28,17 +29,21 @@ public class DatabaseContents
try
{
// Entities
long subRowEntry = 0;
for(RowEntity row : entities)
{
final String[] splittedByEntity = Matchers.genericParse(row.entity);
for(String oneEntity : splittedByEntity)
{
final RowEntity clone = row.clone();
clone.splittedId = String.format("%d%s%d", row.id, Settings.SPLITTED_ID_SEP, subRowEntry);
clone.entity = PlayerType.normalize(oneEntity);
le.add(clone);
subRowEntry += 1;
}
}
// Permissions
subRowEntry = 0;
for(RowPermission row : permissions)
{
final String[] splittedByEntity = Matchers.genericParse(row.entity);
@ -52,14 +57,17 @@ public class DatabaseContents
for(String entity : splittedByEntity)
{
final RowPermission clone = row.clone();
clone.splittedId = String.format("%d%s%d", row.id, Settings.SPLITTED_ID_SEP, subRowEntry);
clone.entity = PlayerType.normalize(entity);
clone.permission = permission;
clone.destination = destination;
lp.add(clone);
subRowEntry += 1;
}
}
}
// Inheritance
subRowEntry = 0;
for(RowInheritance row : inheritance)
{
final String[] splittedByEntity = Matchers.genericParse(row.entity);
@ -73,11 +81,13 @@ public class DatabaseContents
for(String entity : splittedByEntity)
{
final RowInheritance clone = row.clone();
clone.splittedId = String.format("%d%s%d", row.id, Settings.SPLITTED_ID_SEP, subRowEntry);
clone.entity = PlayerType.normalize(entity);
clone.parent = parent;
clone.deriveInstance();
clone.destination = destination;
li.add(clone);
subRowEntry += 1;
}
}
}

Loading…
Cancel
Save