1 /**
2 * Copyright 2005-2012 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl2.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.rice.krms.impl.repository;
17
18
19 import org.kuali.rice.krms.api.repository.context.ContextDefinition;
20
21 /**
22 * This is the interface for accessing KRMS repository Context related bos
23 *
24 * @author Kuali Rice Team (rice.collab@kuali.org)
25 *
26 */
27 public interface ContextBoService {
28
29 /**
30 * This will create a {@link ContextDefinition} exactly like the parameter passed in.
31 *
32 * @param context The Context to create
33 * @throws IllegalArgumentException if the context is null
34 * @throws IllegalStateException if the context already exists in the system
35 */
36 public ContextDefinition createContext(ContextDefinition context);
37
38 /**
39 * This will update an existing {@link ContextDefinition}.
40 *
41 * @param context The Context to update
42 * @throws IllegalArgumentException if the Context is null
43 * @throws IllegalStateException if the Context does not exists in the system
44 */
45 public void updateContext(ContextDefinition context);
46
47 // public void createContextAttribute(ContextAttribute contextAttribute);
48 // public void updateContextAttribute(ContextAttribute contextAttribute);
49
50 /**
51 * Retrieves an Context from the repository based on the given context id.
52 *
53 * @param contextId the id of the Context to retrieve
54 * @return an {@link ContextDefinition} identified by the given contextId.
55 * A null reference is returned if an invalid or non-existent id is supplied.
56 * @throws IllegalArgumentException if the contextId is null or blank.
57 */
58 public ContextDefinition getContextByContextId( String contextId );
59
60 /**
61 * Retrieves an Context from the repository based on the provided context name
62 * and namespace.
63 *
64 * @param name the name of the Context to retrieve.
65 * @param namespace the namespace that the context is under.
66 * @return an {@link ContextDefinition} identified by the given name and namespace.
67 * A null reference is returned if an invalid or non-existent name and
68 * namespace combination is supplied.
69 * @throws IllegalArgumentException if the either the name or the namespace
70 * is null or blank.
71 */
72 public ContextDefinition getContextByNameAndNamespace( String name, String namespace );
73
74 /**
75 * Converts a mutable bo to it's immutable counterpart
76 * @param bo the mutable business object
77 * @return the immutable object
78 */
79 // public ContextDefinition to( ContextBo bo);
80
81 /**
82 * Converts a immutable object to it's mutable bo counterpart
83 * @param im immutable object
84 * @return the mutable bo
85 */
86 // public ContextBo from( ContextDefinition im );
87 }