/* * Copyright (c) 2015, WSO2 Inc. (http://www.wso2.org) All Rights Reserved. * * WSO2 Inc. 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.wso2.carbon.registry.extensions.services; import org.wso2.carbon.context.PrivilegedCarbonContext; import org.wso2.carbon.core.AbstractAdmin; import java.util.HashMap; import java.util.Map; public class RXTStoragePathServiceImpl extends AbstractAdmin implements RXTStoragePathService { private static Map<Integer, Map<String, String>> tenantMap = new HashMap<Integer, Map<String, String>>(); /** * This method returns the registry path expression of the given media type * @param mediaType media type of the RXT(Configurable artifact) * @return registry path expression */ public String getStoragePath(String mediaType) { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); if (tenantMap.get(tenantId) != null) { return tenantMap.get(tenantId).get(mediaType); } return null; } /** * This method removes the path expression of the given media type * @param mediaType media type of the RXT(Configurable artifact) */ public void removeStoragePath(String mediaType) { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); if (tenantMap.get(tenantId) != null && tenantMap.get(tenantId).get(mediaType) != null) { tenantMap.get(tenantId).remove(mediaType); } } /** * This method stores the path expression of the given media type * @param mediaType media type of the RXT(Configurable artifact) * @param storagePath registry path expression */ public void addStoragePath(String mediaType, String storagePath) { int tenantId = PrivilegedCarbonContext.getThreadLocalCarbonContext().getTenantId(); storagePath = getCompletePath(storagePath); if (tenantMap.get(tenantId) != null) { Map<String, String> pathMap = tenantMap.get(tenantId); pathMap.put(mediaType, storagePath); tenantMap.put(tenantId, pathMap); } else { Map<String, String> pathMap = new HashMap<String, String>(); pathMap.put(mediaType, storagePath); tenantMap.put(tenantId, pathMap); } } private String getCompletePath(String storagePath) { String path = "/_system/governance"; if (!storagePath.startsWith(path)) { storagePath = path + storagePath; } return storagePath; } }