diff options
author | Anton Tananaev <anton@traccar.org> | 2022-02-21 17:33:58 -0800 |
---|---|---|
committer | Anton Tananaev <anton@traccar.org> | 2022-04-05 15:48:51 -0700 |
commit | 9ec2d09ad8a757d58f70812b9cf5e835321382e6 (patch) | |
tree | 3632335375c62d7e30d32c49b9d952af3eb0b748 /src/main/java/org/traccar/storage/query | |
parent | 307c4dd690c5826e076657fa83f2ddd41cec1126 (diff) | |
download | trackermap-server-9ec2d09ad8a757d58f70812b9cf5e835321382e6.tar.gz trackermap-server-9ec2d09ad8a757d58f70812b9cf5e835321382e6.tar.bz2 trackermap-server-9ec2d09ad8a757d58f70812b9cf5e835321382e6.zip |
Migrate permissions to storage
Diffstat (limited to 'src/main/java/org/traccar/storage/query')
-rw-r--r-- | src/main/java/org/traccar/storage/query/Condition.java | 38 |
1 files changed, 38 insertions, 0 deletions
diff --git a/src/main/java/org/traccar/storage/query/Condition.java b/src/main/java/org/traccar/storage/query/Condition.java index 82c8e8479..304440698 100644 --- a/src/main/java/org/traccar/storage/query/Condition.java +++ b/src/main/java/org/traccar/storage/query/Condition.java @@ -1,7 +1,21 @@ package org.traccar.storage.query; +import java.util.List; + public interface Condition { + static Condition merge(List<Condition> conditions) { + Condition result = null; + var iterator = conditions.iterator(); + if (iterator.hasNext()) { + result = iterator.next(); + while (iterator.hasNext()) { + result = new Condition.And(result, iterator.next()); + } + } + return result; + } + class Equals extends Compare { public Equals(String column, String variable) { this(column, variable, null); @@ -114,4 +128,28 @@ public interface Condition { } } + class Permission implements Condition { + private final Class<?> ownerClass; + private final long ownerId; + private final Class<?> propertyClass; + + public Permission(Class<?> ownerClass, long ownerId, Class<?> propertyClass) { + this.ownerClass = ownerClass; + this.ownerId = ownerId; + this.propertyClass = propertyClass; + } + + public Class<?> getOwnerClass() { + return ownerClass; + } + + public long getOwnerId() { + return ownerId; + } + + public Class<?> getPropertyClass() { + return propertyClass; + } + } + } |