Subversion Repository Public Repository

litesoft

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
/*
 * Copyright 2009 Google 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 com.google.gwt.gen2.table.client.property;

import com.google.gwt.gen2.table.client.property.ColumnProperty.*;

import java.util.*;

/**
 * Manager responsible for adding, retrieving, and removing
 * {@link ColumnProperty}.
 */
public class ColumnPropertyManager {
    /**
     * A map of property types to their associated properties.
     */
    private Map<Type<?>, ColumnProperty> properties = new HashMap<Type<?>, ColumnProperty>();

    /**
     * <p>
     * Get the {@link ColumnProperty} associated with the specified
     * {@link ColumnProperty.Type}. If the property is not defined, the default
     * value will be returned.
     * </p>
     * <p>
     * This method should never return null. Instead, it should return the default
     * property from {@link ColumnProperty.Type#getDefault()}.
     * </p>
     *
     * @param <P>  the column property type
     * @param type the {@link ColumnProperty} type
     *
     * @return the property, or the default value if the property is not defined
     */
    public <P extends ColumnProperty> P getColumnProperty( ColumnProperty.Type<P> type ) {
        return getColumnProperty( type, true );
    }

    /**
     * Get the {@link ColumnProperty} associated with the specified
     * {@link ColumnProperty.Type}.
     *
     * @param <P>        the column property type
     * @param type       the {@link ColumnProperty} type
     * @param useDefault if true, return the default property instead of null
     *
     * @return the property, or the default value if the property is not defined
     */
    @SuppressWarnings("unchecked")
    public <P extends ColumnProperty> P getColumnProperty( ColumnProperty.Type<P> type, boolean useDefault ) {
        Object property = properties.get( type );
        if ( property == null && useDefault ) {
            return type.getDefault();
        }
        return (P) property;
    }

    /**
     * Remove an existing {@link ColumnProperty} if it has already been added.
     *
     * @param type the type of the property to remove
     *
     * @return the removed property, or null if one was never set
     */
    @SuppressWarnings("unchecked")
    public <P extends ColumnProperty> P removeColumnProperty( ColumnProperty.Type<P> type ) {
        Object property = properties.remove( type );
        if ( property == null ) {
            return null;
        }
        return (P) property;
    }

    /**
     * Set a {@link ColumnProperty}.
     *
     * @param <P>      the column property type
     * @param type     the {@link ColumnProperty} type
     * @param property the property to set
     */
    public <P extends ColumnProperty> void setColumnProperty( ColumnProperty.Type<P> type, P property ) {
        assert type != null : "Cannot add a property with a null type";
        assert property != null : "Cannot add a null property";
        properties.put( type, property );
    }
}

Commits for litesoft/trunk/Java/GWT/Client/src/com/google/gwt/gen2/table/client/property/ColumnPropertyManager.java

Diff revisions: vs.
Revision Author Commited Message
948 Diff Diff GeorgeS picture GeorgeS Sat 07 Jun, 2014 23:42:39 +0000

Jusefuls Formatter Updated to New Code Format

939 Diff Diff GeorgeS picture GeorgeS Mon 02 Jun, 2014 21:30:31 +0000

Extracting commonfoundation

475 Diff Diff GeorgeS picture GeorgeS Sat 03 Sep, 2011 13:54:51 +0000
282 GeorgeS picture GeorgeS Fri 17 Jun, 2011 13:54:39 +0000