/******************************************************************************* * ============LICENSE_START==================================================== * * org.onap.aaf * * =========================================================================== * * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * * =========================================================================== * * Licensed 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. * * ============LICENSE_END==================================================== * * * * ECOMP is a trademark and service mark of AT&T Intellectual Property. * * ******************************************************************************/ package org.onap.aaf.authz.service.mapper; import java.util.Collection; import java.util.List; import org.onap.aaf.authz.env.AuthzTrans; import org.onap.aaf.authz.layer.Result; import org.onap.aaf.authz.service.MayChange; import org.onap.aaf.dao.Bytification; import org.onap.aaf.dao.aaf.cass.ApprovalDAO; import org.onap.aaf.dao.aaf.cass.CertDAO; import org.onap.aaf.dao.aaf.cass.CredDAO; import org.onap.aaf.dao.aaf.cass.DelegateDAO; import org.onap.aaf.dao.aaf.cass.FutureDAO; import org.onap.aaf.dao.aaf.cass.HistoryDAO; import org.onap.aaf.dao.aaf.cass.Namespace; import org.onap.aaf.dao.aaf.cass.PermDAO; import org.onap.aaf.dao.aaf.cass.RoleDAO; import org.onap.aaf.dao.aaf.cass.UserRoleDAO; import org.onap.aaf.rosetta.Marshal; public interface Mapper< NSS, PERMS, PERMKEY, ROLES, USERS, USERROLES, DELGS, CERTS, KEYS, REQUEST, HISTORY, ERROR, APPROVALS> { enum API{NSS,NS_REQ, PERMS,PERM_KEY,PERM_REQ, ROLES,ROLE,ROLE_REQ,ROLE_PERM_REQ, USERS,USER_ROLE_REQ,USER_ROLES, CRED_REQ,CERTS, APPROVALS, DELGS,DELG_REQ, KEYS, HISTORY, ERROR, API, VOID}; public Class getClass(API api); public Marshal getMarshal(API api); public A newInstance(API api); public Result permkey(AuthzTrans trans, PERMKEY from); public Result perm(AuthzTrans trans, REQUEST from); public Result role(AuthzTrans trans, REQUEST from); public Result ns(AuthzTrans trans, REQUEST from); public Result cred(AuthzTrans trans, REQUEST from, boolean requiresPass); public Result cred(List lcred, USERS to); public Result cert(List lcert, CERTS to); public Result delegate(AuthzTrans trans, REQUEST from); public Result delegate(List lDelg); public Result approvals(List lAppr); public Result> approvals(APPROVALS apprs); public Result> perms(AuthzTrans trans, PERMS perms); public Result userRole(AuthzTrans trans, REQUEST from); public Result permFromRPRequest(AuthzTrans trans, REQUEST from); public Result roleFromRPRequest(AuthzTrans trans, REQUEST from); /* * Check Requests of varying sorts for Future fields set */ public Result future(AuthzTrans trans, String table, REQUEST from, Bytification content, boolean enableApproval, Memo memo, MayChange mc); public Result nss(AuthzTrans trans, Namespace from, NSS to); // Note: Prevalidate if NS given is allowed to be seen before calling public Result nss(AuthzTrans trans, Collection from, NSS to); // public Result ns_attrib(AuthzTrans trans, Set from, NSS to); public Result perms(AuthzTrans trans, List from, PERMS to, boolean filter); public Result roles(AuthzTrans trans, List from, ROLES roles, boolean filter); // Note: Prevalidate if NS given is allowed to be seen before calling public Result users(AuthzTrans trans, Collection from, USERS to); public Result userRoles(AuthzTrans trans, Collection from, USERROLES to); public Result keys(Collection from); public Result history(AuthzTrans trans, List history, final int sort); public ERROR errorFromMessage(StringBuilder holder, String msgID, String text, String... detail); /* * A Memo Creator... Use to avoid creating superfluous Strings until needed. */ public static interface Memo { public String get(); } }