diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/IGLProperty.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/IGLProperty.java | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/IGLProperty.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/IGLProperty.java new file mode 100644 index 000000000..ed87fd231 --- /dev/null +++ b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/IGLProperty.java @@ -0,0 +1,63 @@ +/* + * Copyright (C) 2011 The Android Open Source Project + * + * 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.android.ide.eclipse.gltrace.state; + + +/** + * The GL state is modeled as a hierarchical set of properties, all of which implement + * this interface. + */ +public interface IGLProperty extends Cloneable { + /** Obtain the type of the property. */ + GLStateType getType(); + + /** Is this a composite property? + * @return true if it is a list or structure of properties, + * false if it is a leaf level atomic property + * */ + boolean isComposite(); + + /** + * Is the currently set value the default? + * @return true if current value matches the default (initial) value + */ + boolean isDefault(); + + /** Set the current value for this property. */ + void setValue(Object value); + + /** Get the current value for this property. */ + Object getValue(); + + /** Get the string representation for this property. */ + String getStringValue(); + + /** + * Get the parent property that holds this property. + * @return null if this property is at the top level, parent otherwise + */ + IGLProperty getParent(); + + /** Set the parent property that holds this property. */ + void setParent(IGLProperty parent); + + /** Deep clone this property. */ + IGLProperty clone(); + + /** Pretty print current property value to the given writer. */ + void prettyPrint(StatePrettyPrinter pp); +} |