1 /*
2  * Copyright (C) 2019 The Android Open Source Project
3  *
4  * Licensed under the Apache 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.apache.org/licenses/LICENSE-2.0
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 
17 package androidx.constraintlayout.core.state;
18 
19 import androidx.constraintlayout.core.state.helpers.Facade;
20 import androidx.constraintlayout.core.widgets.ConstraintWidget;
21 import androidx.constraintlayout.core.widgets.HelperWidget;
22 
23 import java.util.ArrayList;
24 import java.util.Collections;
25 
26 public class HelperReference extends ConstraintReference implements Facade {
27     protected final State mHelperState;
28     final State.Helper mType;
29     protected ArrayList<Object> mReferences = new ArrayList<>();
30     private HelperWidget mHelperWidget;
31 
HelperReference(State state, State.Helper type)32     public HelperReference(State state, State.Helper type) {
33         super(state);
34         mHelperState = state;
35         mType = type;
36     }
37 
getType()38     public State.Helper getType() {
39         return mType;
40     }
41 
42     // @TODO: add description
add(Object... objects)43     public HelperReference add(Object... objects) {
44         Collections.addAll(mReferences, objects);
45         return this;
46     }
47 
setHelperWidget(HelperWidget helperWidget)48     public void setHelperWidget(HelperWidget helperWidget) {
49         mHelperWidget = helperWidget;
50     }
51 
getHelperWidget()52     public HelperWidget getHelperWidget() {
53         return mHelperWidget;
54     }
55 
56     @Override
getConstraintWidget()57     public ConstraintWidget getConstraintWidget() {
58         return getHelperWidget();
59     }
60 
61     // @TODO: add description
62     @Override
apply()63     public void apply() {
64         // nothing
65     }
66 
67     /**
68      * Allows the derived classes to invoke the apply method in the ConstraintReference
69      */
applyBase()70     public void applyBase() {
71         super.apply();
72     }
73 }
74