/*
* Copyright 2011 Future Systems, Inc.
*
* 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.
*/
package org.krakenapps.dom.api;
import java.util.Collection;
import org.krakenapps.dom.model.Application;
import org.krakenapps.dom.model.ApplicationGroup;
import org.krakenapps.dom.model.ApplicationVersion;
import org.krakenapps.dom.model.Vendor;
public interface ApplicationApi extends EntityEventProvider<Application> {
Collection<Vendor> getVendors(String domain);
Vendor findVendor(String domain, String guid);
Vendor getVendor(String domain, String guid);
void createVendors(String domain, Collection<Vendor> vendors);
void createVendor(String domain, Vendor vendor);
void updateVendors(String domain, Collection<Vendor> vendors);
void updateVendor(String domain, Vendor vendor);
void removeVendors(String domain, Collection<String> guids);
void removeVendor(String domain, String guid);
EntityEventProvider<Vendor> getVendorEventProvider();
Collection<Application> getApplications(String domain);
Application findApplication(String domain, String guid);
Application getApplication(String domain, String guid);
void createApplications(String domain, Collection<Application> applications);
void createApplication(String domain, Application application);
void updateApplications(String domain, Collection<Application> applications);
void updateApplication(String domain, Application application);
void removeApplications(String domain, Collection<String> guids);
void removeApplication(String domain, String guid);
Collection<ApplicationVersion> getApplicationVersions(String domain);
ApplicationVersion findApplicationVersion(String domain, String guid);
ApplicationVersion getApplicationVersion(String domain, String guid);
void createApplicationVersions(String domain, Collection<ApplicationVersion> versions);
void createApplicationVersion(String domain, ApplicationVersion version);
void updateApplicationVersions(String domain, Collection<ApplicationVersion> versions);
void updateApplicationVersion(String domain, ApplicationVersion version);
void removeApplicationVersions(String domain, Collection<String> guids);
void removeApplicationVersion(String domain, String guid);
EntityEventProvider<ApplicationVersion> getApplicationVersionEventProvider();
Collection<ApplicationGroup> getApplicationGroups(String domain);
ApplicationGroup findApplicationGroup(String domain, String guid);
ApplicationGroup getApplicationGroup(String domain, String guid);
void createApplicationGroups(String domain, Collection<ApplicationGroup> groups);
void createApplicationGroup(String domain, ApplicationGroup group);
void updateApplicationGroups(String domain, Collection<ApplicationGroup> groups);
void updateApplicationGroup(String domain, ApplicationGroup group);
void removeApplicationGroups(String domain, Collection<String> guids);
void removeApplicationGroup(String domain, String guid);
EntityEventProvider<ApplicationGroup> getApplicationGroupEventProvider();
}