You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2015/01/12 17:32:17 UTC
[38/52] [abbrv] [partial] syncope git commit: [SYNCOPE-620] Unit
tests all in
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttr.java
new file mode 100644
index 0000000..bfc4d18
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttr.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import java.util.List;
+import org.apache.syncope.server.persistence.api.attrvalue.validation.InvalidPlainAttrValueException;
+
+public interface PlainAttr extends Attr<PlainSchema> {
+
+ void addValue(String value, AttributableUtil attributableUtil) throws InvalidPlainAttrValueException;
+
+ boolean removeValue(PlainAttrValue attrValue);
+
+ PlainAttrUniqueValue getUniqueValue();
+
+ List<? extends PlainAttrValue> getValues();
+
+ List<String> getValuesAsStrings();
+
+ void setUniqueValue(PlainAttrUniqueValue uniqueValue);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttrUniqueValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttrUniqueValue.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttrUniqueValue.java
new file mode 100644
index 0000000..6d3184d
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttrUniqueValue.java
@@ -0,0 +1,26 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+public interface PlainAttrUniqueValue extends PlainAttrValue {
+
+ PlainSchema getSchema();
+
+ void setSchema(PlainSchema schema);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttrValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttrValue.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttrValue.java
new file mode 100644
index 0000000..20b578a
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainAttrValue.java
@@ -0,0 +1,62 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import java.util.Date;
+import org.apache.syncope.common.lib.types.AttrSchemaType;
+import org.apache.syncope.server.persistence.api.attrvalue.validation.ParsingValidationException;
+
+public interface PlainAttrValue extends Entity<Long> {
+
+ PlainAttr getAttr();
+
+ byte[] getBinaryValue();
+
+ Boolean getBooleanValue();
+
+ Date getDateValue();
+
+ Double getDoubleValue();
+
+ Long getLongValue();
+
+ String getStringValue();
+
+ <V> V getValue();
+
+ String getValueAsString();
+
+ String getValueAsString(AttrSchemaType type);
+
+ void parseValue(PlainSchema schema, String value) throws ParsingValidationException;
+
+ void setAttr(PlainAttr attr);
+
+ void setBinaryValue(byte[] binaryValue);
+
+ void setBooleanValue(Boolean booleanValue);
+
+ void setDateValue(Date dateValue);
+
+ void setDoubleValue(Double doubleValue);
+
+ void setLongValue(Long longValue);
+
+ void setStringValue(String stringValue);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainSchema.java
new file mode 100644
index 0000000..1b86742
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PlainSchema.java
@@ -0,0 +1,67 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import org.apache.syncope.common.lib.types.AttrSchemaType;
+import org.apache.syncope.common.lib.types.CipherAlgorithm;
+import org.apache.syncope.server.persistence.api.attrvalue.validation.Validator;
+
+public interface PlainSchema extends Schema {
+
+ CipherAlgorithm getCipherAlgorithm();
+
+ String getConversionPattern();
+
+ String getEnumerationKeys();
+
+ String getEnumerationValues();
+
+ String getMimeType();
+
+ String getSecretKey();
+
+ Validator getValidator();
+
+ String getValidatorClass();
+
+ void setCipherAlgorithm(CipherAlgorithm cipherAlgorithm);
+
+ void setConversionPattern(String conversionPattern);
+
+ void setEnumerationKeys(String enumerationKeys);
+
+ void setEnumerationValues(String enumerationValues);
+
+ void setMimeType(String mimeType);
+
+ void setSecretKey(String secretKey);
+
+ void setValidatorClass(String validatorClass);
+
+ void setType(AttrSchemaType type);
+
+ void setMandatoryCondition(String condition);
+
+ void setMultivalue(boolean multivalue);
+
+ void setReadonly(boolean readonly);
+
+ void setUniqueConstraint(boolean uniquevalue);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Policy.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Policy.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Policy.java
new file mode 100644
index 0000000..30cfea6
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Policy.java
@@ -0,0 +1,35 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import org.apache.syncope.common.lib.types.PolicySpec;
+import org.apache.syncope.common.lib.types.PolicyType;
+
+public interface Policy extends Entity<Long> {
+
+ String getDescription();
+
+ <T extends PolicySpec> T getSpecification(Class<T> reference);
+
+ PolicyType getType();
+
+ void setDescription(String description);
+
+ void setSpecification(PolicySpec policy);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PushPolicy.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PushPolicy.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PushPolicy.java
new file mode 100644
index 0000000..3ec8817
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/PushPolicy.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+public interface PushPolicy extends Policy {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Report.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Report.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Report.java
new file mode 100644
index 0000000..6bd22e2
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Report.java
@@ -0,0 +1,45 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import java.util.List;
+import org.apache.syncope.common.lib.report.ReportletConf;
+
+public interface Report extends Entity<Long> {
+
+ String getName();
+
+ boolean addExec(ReportExec exec);
+
+ boolean addReportletConf(ReportletConf reportletConf);
+
+ String getCronExpression();
+
+ List<? extends ReportExec> getExecs();
+
+ List<? extends ReportletConf> getReportletConfs();
+
+ boolean removeExec(ReportExec exec);
+
+ boolean removeReportletConf(ReportletConf reportletConf);
+
+ void setCronExpression(String cronExpression);
+
+ void setName(String name);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/ReportExec.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/ReportExec.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/ReportExec.java
new file mode 100644
index 0000000..3619c68
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/ReportExec.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import org.apache.syncope.common.lib.types.ReportExecStatus;
+
+public interface ReportExec extends Exec {
+
+ byte[] getExecResult();
+
+ Report getReport();
+
+ void setExecResult(byte[] execResult);
+
+ void setReport(Report report);
+
+ void setStatus(ReportExecStatus status);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/ReportletConfInstance.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/ReportletConfInstance.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/ReportletConfInstance.java
new file mode 100644
index 0000000..fc776e6
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/ReportletConfInstance.java
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import org.apache.syncope.common.lib.report.ReportletConf;
+
+public interface ReportletConfInstance extends Entity<Long> {
+
+ ReportletConf getInstance();
+
+ Report getReport();
+
+ void setInstance(ReportletConf instance);
+
+ void setReport(Report report);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Schema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Schema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Schema.java
new file mode 100644
index 0000000..ea386da
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Schema.java
@@ -0,0 +1,37 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import org.apache.syncope.common.lib.types.AttrSchemaType;
+
+public interface Schema extends Entity<String> {
+
+ AttrSchemaType getType();
+
+ String getMandatoryCondition();
+
+ boolean isMultivalue();
+
+ boolean isReadonly();
+
+ boolean isUniqueConstraint();
+
+ void setKey(String name);
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Subject.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Subject.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Subject.java
new file mode 100644
index 0000000..8bb68cd
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/Subject.java
@@ -0,0 +1,32 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import java.util.Set;
+
+public interface Subject<N extends PlainAttr, D extends DerAttr, V extends VirAttr> extends Attributable<N, D, V> {
+
+ boolean addResource(ExternalResource resource);
+
+ boolean removeResource(ExternalResource resource);
+
+ Set<String> getResourceNames();
+
+ Set<? extends ExternalResource> getResources();
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/SyncPolicy.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/SyncPolicy.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/SyncPolicy.java
new file mode 100644
index 0000000..e18d2f3
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/SyncPolicy.java
@@ -0,0 +1,23 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+public interface SyncPolicy extends Policy {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/VirAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/VirAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/VirAttr.java
new file mode 100644
index 0000000..0bd2785
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/VirAttr.java
@@ -0,0 +1,30 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+import java.util.List;
+
+public interface VirAttr extends Attr<VirSchema> {
+
+ List<String> getValues();
+
+ boolean addValue(String value);
+
+ boolean removeValue(String value);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/VirSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/VirSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/VirSchema.java
new file mode 100644
index 0000000..9e1b19f
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/VirSchema.java
@@ -0,0 +1,24 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity;
+
+public interface VirSchema extends Schema {
+
+ void setReadonly(boolean readonly);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttr.java
new file mode 100644
index 0000000..745e543
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttr.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.conf;
+
+import java.util.List;
+import org.apache.syncope.server.persistence.api.entity.PlainAttr;
+
+public interface CPlainAttr extends PlainAttr {
+
+ @SuppressWarnings("unchecked")
+ @Override
+ Conf getOwner();
+
+ @Override
+ CPlainSchema getSchema();
+
+ @Override
+ List<? extends CPlainAttrValue> getValues();
+
+ @Override
+ CPlainAttrUniqueValue getUniqueValue();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttrUniqueValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttrUniqueValue.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttrUniqueValue.java
new file mode 100644
index 0000000..1f198a6
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttrUniqueValue.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.conf;
+
+import org.apache.syncope.server.persistence.api.entity.PlainAttrUniqueValue;
+
+public interface CPlainAttrUniqueValue extends PlainAttrUniqueValue {
+
+ @Override
+ CPlainAttr getAttr();
+
+ @Override
+ CPlainSchema getSchema();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttrValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttrValue.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttrValue.java
new file mode 100644
index 0000000..7921725
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainAttrValue.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.conf;
+
+import org.apache.syncope.server.persistence.api.entity.PlainAttrValue;
+
+public interface CPlainAttrValue extends PlainAttrValue {
+
+ @Override
+ CPlainAttr getAttr();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainSchema.java
new file mode 100644
index 0000000..fbbb446
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/CPlainSchema.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.conf;
+
+import org.apache.syncope.server.persistence.api.entity.PlainSchema;
+
+public interface CPlainSchema extends PlainSchema {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/Conf.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/Conf.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/Conf.java
new file mode 100644
index 0000000..1ea707e
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/conf/Conf.java
@@ -0,0 +1,39 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.conf;
+
+import java.util.List;
+import org.apache.syncope.server.persistence.api.entity.Attributable;
+import org.apache.syncope.server.persistence.api.entity.DerAttr;
+import org.apache.syncope.server.persistence.api.entity.VirAttr;
+
+public interface Conf extends Attributable<CPlainAttr, DerAttr, VirAttr> {
+
+ void setKey(Long key);
+
+ @Override
+ boolean addPlainAttr(CPlainAttr attr);
+
+ @Override
+ boolean removePlainAttr(CPlainAttr attr);
+
+ @Override
+ List<? extends CPlainAttr> getPlainAttrs();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerAttr.java
new file mode 100644
index 0000000..0b4baba
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerAttr.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.DerAttr;
+
+public interface MDerAttr extends DerAttr {
+
+ @Override
+ Membership getOwner();
+
+ @Override
+ MDerSchema getSchema();
+
+ MDerAttrTemplate getTemplate();
+
+ void setTemplate(MDerAttrTemplate template);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerAttrTemplate.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerAttrTemplate.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerAttrTemplate.java
new file mode 100644
index 0000000..ea32764
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerAttrTemplate.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.AttrTemplate;
+
+public interface MDerAttrTemplate extends AttrTemplate<MDerSchema> {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerSchema.java
new file mode 100644
index 0000000..a565613
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MDerSchema.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.DerSchema;
+
+public interface MDerSchema extends DerSchema {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttr.java
new file mode 100644
index 0000000..b829e99
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttr.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import java.util.List;
+import org.apache.syncope.server.persistence.api.entity.PlainAttr;
+
+public interface MPlainAttr extends PlainAttr {
+
+ @Override
+ Membership getOwner();
+
+ @Override
+ MPlainSchema getSchema();
+
+ MPlainAttrTemplate getTemplate();
+
+ void setTemplate(MPlainAttrTemplate template);
+
+ @Override
+ List<? extends MPlainAttrValue> getValues();
+
+ @Override
+ MPlainAttrUniqueValue getUniqueValue();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrTemplate.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrTemplate.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrTemplate.java
new file mode 100644
index 0000000..a58b47a
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrTemplate.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.AttrTemplate;
+
+public interface MPlainAttrTemplate extends AttrTemplate<MPlainSchema> {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrUniqueValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrUniqueValue.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrUniqueValue.java
new file mode 100644
index 0000000..92d8a0a
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrUniqueValue.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.PlainAttrUniqueValue;
+
+public interface MPlainAttrUniqueValue extends PlainAttrUniqueValue {
+
+ @Override
+ MPlainAttr getAttr();
+
+ @Override
+ MPlainSchema getSchema();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrValue.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrValue.java
new file mode 100644
index 0000000..71c6c9c
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainAttrValue.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.PlainAttrValue;
+
+public interface MPlainAttrValue extends PlainAttrValue {
+
+ @Override
+ MPlainAttr getAttr();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainSchema.java
new file mode 100644
index 0000000..77e78eb
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MPlainSchema.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.PlainSchema;
+
+public interface MPlainSchema extends PlainSchema {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirAttr.java
new file mode 100644
index 0000000..390853d
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirAttr.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.VirAttr;
+
+public interface MVirAttr extends VirAttr {
+
+ @Override
+ Membership getOwner();
+
+ @Override
+ MVirSchema getSchema();
+
+ MVirAttrTemplate getTemplate();
+
+ void setTemplate(MVirAttrTemplate template);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirAttrTemplate.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirAttrTemplate.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirAttrTemplate.java
new file mode 100644
index 0000000..57a2eae
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirAttrTemplate.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.AttrTemplate;
+
+public interface MVirAttrTemplate extends AttrTemplate<MVirSchema> {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirSchema.java
new file mode 100644
index 0000000..5539e27
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/MVirSchema.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import org.apache.syncope.server.persistence.api.entity.VirSchema;
+
+public interface MVirSchema extends VirSchema {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/Membership.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/Membership.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/Membership.java
new file mode 100644
index 0000000..9b4e883
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/membership/Membership.java
@@ -0,0 +1,53 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.membership;
+
+import java.util.List;
+import org.apache.syncope.server.persistence.api.entity.Attributable;
+import org.apache.syncope.server.persistence.api.entity.role.Role;
+import org.apache.syncope.server.persistence.api.entity.user.User;
+
+public interface Membership extends Attributable<MPlainAttr, MDerAttr, MVirAttr> {
+
+ Role getRole();
+
+ User getUser();
+
+ void setRole(Role role);
+
+ void setUser(User user);
+
+ @Override
+ MPlainAttr getPlainAttr(String plainSchemaName);
+
+ @Override
+ List<? extends MPlainAttr> getPlainAttrs();
+
+ @Override
+ MDerAttr getDerAttr(String derSchemaName);
+
+ @Override
+ List<? extends MDerAttr> getDerAttrs();
+
+ @Override
+ MVirAttr getVirAttr(String virSchemaName);
+
+ @Override
+ List<? extends MVirAttr> getVirAttrs();
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerAttr.java
new file mode 100644
index 0000000..5762a1d
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerAttr.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.DerAttr;
+
+public interface RDerAttr extends DerAttr {
+
+ @Override
+ Role getOwner();
+
+ @Override
+ RDerSchema getSchema();
+
+ RDerAttrTemplate getTemplate();
+
+ void setTemplate(RDerAttrTemplate template);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerAttrTemplate.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerAttrTemplate.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerAttrTemplate.java
new file mode 100644
index 0000000..3cbdf4e
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerAttrTemplate.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.AttrTemplate;
+
+public interface RDerAttrTemplate extends AttrTemplate<RDerSchema> {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerSchema.java
new file mode 100644
index 0000000..7e695cf
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RDerSchema.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.DerSchema;
+
+public interface RDerSchema extends DerSchema {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RMapping.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RMapping.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RMapping.java
new file mode 100644
index 0000000..b74c5e9
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RMapping.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.Mapping;
+
+public interface RMapping extends Mapping<RMappingItem> {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RMappingItem.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RMappingItem.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RMappingItem.java
new file mode 100644
index 0000000..47c7ee5
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RMappingItem.java
@@ -0,0 +1,29 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.Mapping;
+import org.apache.syncope.server.persistence.api.entity.MappingItem;
+
+public interface RMappingItem extends MappingItem {
+
+ @Override
+ Mapping<RMappingItem> getMapping();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttr.java
new file mode 100644
index 0000000..9b2b367
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttr.java
@@ -0,0 +1,42 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import java.util.List;
+import org.apache.syncope.server.persistence.api.entity.PlainAttr;
+
+public interface RPlainAttr extends PlainAttr {
+
+ @Override
+ Role getOwner();
+
+ @Override
+ RPlainSchema getSchema();
+
+ RPlainAttrTemplate getTemplate();
+
+ void setTemplate(RPlainAttrTemplate template);
+
+ @Override
+ List<? extends RPlainAttrValue> getValues();
+
+ @Override
+ RPlainAttrUniqueValue getUniqueValue();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrTemplate.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrTemplate.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrTemplate.java
new file mode 100644
index 0000000..a199f3d
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrTemplate.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.AttrTemplate;
+
+public interface RPlainAttrTemplate extends AttrTemplate<RPlainSchema> {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrUniqueValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrUniqueValue.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrUniqueValue.java
new file mode 100644
index 0000000..e3b744e
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrUniqueValue.java
@@ -0,0 +1,31 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.PlainAttrUniqueValue;
+
+public interface RPlainAttrUniqueValue extends PlainAttrUniqueValue {
+
+ @Override
+ RPlainAttr getAttr();
+
+ @Override
+ RPlainSchema getSchema();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrValue.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrValue.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrValue.java
new file mode 100644
index 0000000..405c58c
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainAttrValue.java
@@ -0,0 +1,28 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.PlainAttrValue;
+
+public interface RPlainAttrValue extends PlainAttrValue {
+
+ @Override
+ RPlainAttr getAttr();
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainSchema.java
new file mode 100644
index 0000000..862430a
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RPlainSchema.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.PlainSchema;
+
+public interface RPlainSchema extends PlainSchema {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirAttr.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirAttr.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirAttr.java
new file mode 100644
index 0000000..cd77274
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirAttr.java
@@ -0,0 +1,34 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.VirAttr;
+
+public interface RVirAttr extends VirAttr {
+
+ @Override
+ Role getOwner();
+
+ @Override
+ RVirSchema getSchema();
+
+ RVirAttrTemplate getTemplate();
+
+ void setTemplate(RVirAttrTemplate template);
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirAttrTemplate.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirAttrTemplate.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirAttrTemplate.java
new file mode 100644
index 0000000..d302811
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirAttrTemplate.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.AttrTemplate;
+
+public interface RVirAttrTemplate extends AttrTemplate<RVirSchema> {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirSchema.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirSchema.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirSchema.java
new file mode 100644
index 0000000..cbc871d
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/RVirSchema.java
@@ -0,0 +1,25 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import org.apache.syncope.server.persistence.api.entity.VirSchema;
+
+public interface RVirSchema extends VirSchema {
+
+}
http://git-wip-us.apache.org/repos/asf/syncope/blob/235f60fa/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/Role.java
----------------------------------------------------------------------
diff --git a/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/Role.java b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/Role.java
new file mode 100644
index 0000000..3da69bf
--- /dev/null
+++ b/syncope620/server/persistence-api/src/main/java/org/apache/syncope/server/persistence/api/entity/role/Role.java
@@ -0,0 +1,168 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package org.apache.syncope.server.persistence.api.entity.role;
+
+import java.util.List;
+import java.util.Set;
+import org.apache.syncope.server.persistence.api.entity.AccountPolicy;
+import org.apache.syncope.server.persistence.api.entity.AttrTemplate;
+import org.apache.syncope.server.persistence.api.entity.Entitlement;
+import org.apache.syncope.server.persistence.api.entity.PasswordPolicy;
+import org.apache.syncope.server.persistence.api.entity.Schema;
+import org.apache.syncope.server.persistence.api.entity.Subject;
+import org.apache.syncope.server.persistence.api.entity.user.User;
+
+public interface Role extends Subject<RPlainAttr, RDerAttr, RVirAttr> {
+
+ String getName();
+
+ Role getParent();
+
+ boolean addEntitlement(Entitlement entitlement);
+
+ boolean removeEntitlement(Entitlement entitlement);
+
+ /**
+ * Get all inherited attributes from the ancestors.
+ *
+ * @return a list of inherited and only inherited attributes.
+ */
+ List<? extends RPlainAttr> findLastInheritedAncestorPlainAttrs();
+
+ /**
+ * Get all inherited derived attributes from the ancestors.
+ *
+ * @return a list of inherited and only inherited attributes.
+ */
+ List<? extends RDerAttr> findLastInheritedAncestorDerAttrs();
+
+ /**
+ * Get all inherited virtual attributes from the ancestors.
+ *
+ * @return a list of inherited and only inherited attributes.
+ */
+ List<? extends RVirAttr> findLastInheritedAncestorVirAttrs();
+
+ /**
+ * Get first valid account policy.
+ *
+ * @return parent account policy if isInheritAccountPolicy is 'true' and parent is not null, local account policy
+ * otherwise.
+ */
+ AccountPolicy getAccountPolicy();
+
+ <T extends AttrTemplate<K>, K extends Schema> List<T> findInheritedTemplates(Class<T> reference);
+
+ <T extends AttrTemplate<K>, K extends Schema> T getAttrTemplate(
+ Class<T> reference, String schemaName);
+
+ <T extends AttrTemplate<K>, K extends Schema> List<K> getAttrTemplateSchemas(Class<T> reference);
+
+ <T extends AttrTemplate<K>, K extends Schema> List<T> getAttrTemplates(Class<T> reference);
+
+ Set<? extends Entitlement> getEntitlements();
+
+ /**
+ * Get first valid password policy.
+ *
+ * @return parent password policy if isInheritPasswordPolicy is 'true' and parent is not null, local password policy
+ * otherwise
+ */
+ PasswordPolicy getPasswordPolicy();
+
+ Role getRoleOwner();
+
+ User getUserOwner();
+
+ boolean isInheritAccountPolicy();
+
+ boolean isInheritPlainAttrs();
+
+ boolean isInheritDerAttrs();
+
+ boolean isInheritOwner();
+
+ boolean isInheritPasswordPolicy();
+
+ boolean isInheritTemplates();
+
+ boolean isInheritVirAttrs();
+
+ void setAccountPolicy(AccountPolicy accountPolicy);
+
+ void setInheritAccountPolicy(boolean condition);
+
+ void setInheritPlainAttrs(boolean inheritAttrs);
+
+ void setInheritDerAttrs(boolean inheritDerAttrs);
+
+ void setInheritOwner(boolean inheritOwner);
+
+ void setInheritPasswordPolicy(boolean condition);
+
+ void setInheritTemplates(boolean condition);
+
+ void setInheritVirAttrs(boolean inheritVirAttrs);
+
+ void setName(String name);
+
+ void setParent(Role parent);
+
+ void setPasswordPolicy(PasswordPolicy passwordPolicy);
+
+ void setRoleOwner(Role roleOwner);
+
+ void setUserOwner(User userOwner);
+
+ @Override
+ boolean addPlainAttr(RPlainAttr attr);
+
+ @Override
+ boolean addDerAttr(RDerAttr attr);
+
+ @Override
+ boolean addVirAttr(RVirAttr attr);
+
+ @Override
+ RPlainAttr getPlainAttr(String plainSchemaName);
+
+ @Override
+ List<? extends RPlainAttr> getPlainAttrs();
+
+ @Override
+ RDerAttr getDerAttr(String derSchemaName);
+
+ @Override
+ List<? extends RDerAttr> getDerAttrs();
+
+ @Override
+ RVirAttr getVirAttr(String virSchemaName);
+
+ @Override
+ List<? extends RVirAttr> getVirAttrs();
+
+ @Override
+ boolean removePlainAttr(RPlainAttr attr);
+
+ @Override
+ boolean removeDerAttr(RDerAttr derAttr);
+
+ @Override
+ boolean removeVirAttr(RVirAttr virAttr);
+}