diff options
Diffstat (limited to 'eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/GLPropertyAccessor.java')
-rw-r--r-- | eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/GLPropertyAccessor.java | 139 |
1 files changed, 0 insertions, 139 deletions
diff --git a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/GLPropertyAccessor.java b/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/GLPropertyAccessor.java deleted file mode 100644 index be338be19..000000000 --- a/eclipse/plugins/com.android.ide.eclipse.gldebugger/src/com/android/ide/eclipse/gltrace/state/transforms/GLPropertyAccessor.java +++ /dev/null @@ -1,139 +0,0 @@ -/* - * 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.transforms; - -import com.android.ide.eclipse.gltrace.state.GLCompositeProperty; -import com.android.ide.eclipse.gltrace.state.GLListProperty; -import com.android.ide.eclipse.gltrace.state.GLSparseArrayProperty; -import com.android.ide.eclipse.gltrace.state.GLStateType; -import com.android.ide.eclipse.gltrace.state.IGLProperty; - -import java.util.ArrayList; -import java.util.List; - -/** - * GLPropertyAccessor's can be used to extract a certain property from the provided - * OpenGL State hierarchy. - */ -public class GLPropertyAccessor implements IGLPropertyAccessor { - private final int mContextId; - private final List<GLPropertyExtractor> mExtractors; - - private GLPropertyAccessor(int contextId, List<GLPropertyExtractor> extractors) { - mContextId = contextId; - mExtractors = extractors; - } - - @Override - public IGLProperty getProperty(IGLProperty state) { - IGLProperty root = ((GLListProperty) state).get(mContextId); - - for (GLPropertyExtractor e : mExtractors) { - IGLProperty successor = e.getProperty(root); - if (successor == null) { - root = null; - break; - } - root = successor; - } - - return root; - } - - /** - * Factory method used to construct a {@link GLPropertyAccessor}. - * @param contextId id of affected context - * @param accessors list of accessor's to be used to navigate the property hierarchy. The - * accessors are either Integers or {@link GLStateType} objects. Integers - * are assumed to be indexes in a {@link GLListProperty} or - * {@link GLSparseArrayProperty}, and the GLStateType enum objects are - * used to query {@link GLCompositeProperty}'s. - */ - public static IGLPropertyAccessor makeAccessor(int contextId, Object...accessors) { - List<GLPropertyExtractor> extractors = new ArrayList<GLPropertyExtractor>(); - - for (Object accessor : accessors) { - if (accessor instanceof GLStateType) { - extractors.add(new GLNamePropertyExtractor((GLStateType) accessor)); - } else if (accessor instanceof Integer) { - extractors.add(new GLIndexPropertyExtractor((Integer) accessor)); - } else { - throw new IllegalArgumentException("Unknown property (" + accessor - + ") used to access members of IGLProperty"); - } - } - - return new GLPropertyAccessor(contextId, extractors); - } - - private interface GLPropertyExtractor { - IGLProperty getProperty(IGLProperty p); - } - - /** Extract properties by name. */ - private static class GLNamePropertyExtractor implements GLPropertyExtractor { - private final GLStateType mType; - - public GLNamePropertyExtractor(GLStateType type) { - mType = type; - } - - @Override - public IGLProperty getProperty(IGLProperty p) { - if (p instanceof GLCompositeProperty) { - return ((GLCompositeProperty) p).getProperty(mType); - } - - return null; - } - } - - /** Extract properties by index. */ - private static class GLIndexPropertyExtractor implements GLPropertyExtractor { - private final int mIndex; - - public GLIndexPropertyExtractor(int index) { - mIndex = index; - } - - @Override - public IGLProperty getProperty(IGLProperty p) { - if (p instanceof GLListProperty && mIndex >= 0) { - return ((GLListProperty) p).get(mIndex); - } - if (p instanceof GLSparseArrayProperty) { - return ((GLSparseArrayProperty) p).getProperty(mIndex); - } - return null; - } - } - - @Override - public String getPath() { - StringBuilder sb = new StringBuilder(mExtractors.size() * 10); - for (GLPropertyExtractor e: mExtractors) { - if (e instanceof GLNamePropertyExtractor) { - sb.append(((GLNamePropertyExtractor) e).mType); - } else { - sb.append(((GLIndexPropertyExtractor) e).mIndex); - } - sb.append('/'); - } - - return sb.toString(); - } -} |