01: /*
02:
03: Derby - Class org.apache.derby.iapi.services.monitor.ModuleSupportable
04:
05: Licensed to the Apache Software Foundation (ASF) under one or more
06: contributor license agreements. See the NOTICE file distributed with
07: this work for additional information regarding copyright ownership.
08: The ASF licenses this file to you under the Apache License, Version 2.0
09: (the "License"); you may not use this file except in compliance with
10: the License. You may obtain a copy of the License at
11:
12: http://www.apache.org/licenses/LICENSE-2.0
13:
14: Unless required by applicable law or agreed to in writing, software
15: distributed under the License is distributed on an "AS IS" BASIS,
16: WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17: See the License for the specific language governing permissions and
18: limitations under the License.
19:
20: */
21:
22: package org.apache.derby.iapi.services.monitor;
23:
24: import java.util.Properties;
25:
26: /**
27: Allows a module to check its environment
28: before it is selected as an implementation.
29: */
30:
31: public interface ModuleSupportable {
32:
33: /**
34: See if this implementation can support any attributes that are listed in properties.
35: This call may be made on a newly created instance before the
36: boot() method has been called, or after the boot method has
37: been called for a running module.
38: <P>
39: The module can check for attributes in the properties to
40: see if it can fulfill the required behaviour. E.g. the raw
41: store may define an attribute called RawStore.Recoverable.
42: If a temporary raw store is required the property RawStore.recoverable=false
43: would be added to the properties before calling bootServiceModule. If a
44: raw store cannot support this attribute its canSupport method would
45: return null. Also see the Monitor class's prologue to see how the
46: identifier is used in looking up properties.
47: <BR><B>Actually a better way maybe to have properties of the form
48: RawStore.Attributes.mandatory=recoverable,smallfootprint and
49: RawStore.Attributes.requested=oltp,fast
50: </B>
51:
52: @return true if this instance can be used, false otherwise.
53: */
54: public boolean canSupport(Properties properties);
55:
56: }
|