14b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet/*
24b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Copyright (C) 2011 The Android Open Source Project
34b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet *
44b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Licensed under the Apache License, Version 2.0 (the "License");
54b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * you may not use this file except in compliance with the License.
64b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * You may obtain a copy of the License at
74b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet *
84b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet *      http://www.apache.org/licenses/LICENSE-2.0
94b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet *
104b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Unless required by applicable law or agreed to in writing, software
114b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * distributed under the License is distributed on an "AS IS" BASIS,
124b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
134b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * See the License for the specific language governing permissions and
144b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * limitations under the License.
154b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet */
164b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet
174b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetpackage com.android.tools.layoutlib.create.dataclass;
184b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet
194b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetimport com.android.tools.layoutlib.create.DelegateClassAdapterTest;
204b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet
214b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet/**
224b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Test class with an inner class.
234b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet *
244b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet * Used by {@link DelegateClassAdapterTest}.
254b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet */
264b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohetpublic class OuterClass {
274b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    private int mOuterValue = 1;
284b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    public OuterClass() {
294b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    }
304b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet
314b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    // Outer.get returns 1 + a + b
324b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    // Note: it's good to have a long or double for testing parameters since they take
334b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    // 2 slots in the stack/locals maps.
344b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    public int get(int a, long b) {
354b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet        return mOuterValue + a + (int) b;
364b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    }
374b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet
384b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    public class InnerClass {
394b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet        public InnerClass() {
404b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet        }
414b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet
42865c3bef54228a353fd449a093b0c8d155618296Raphael Moll        // Inner.get returns 2 + 1 + a + b
434b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet        public int get(int a, long b) {
444b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet            return 2 + mOuterValue + a + (int) b;
454b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet        }
464b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet    }
47865c3bef54228a353fd449a093b0c8d155618296Raphael Moll
48865c3bef54228a353fd449a093b0c8d155618296Raphael Moll    @SuppressWarnings("unused")
49865c3bef54228a353fd449a093b0c8d155618296Raphael Moll    private String privateMethod() {
50865c3bef54228a353fd449a093b0c8d155618296Raphael Moll        return "outerPrivateMethod";
51865c3bef54228a353fd449a093b0c8d155618296Raphael Moll    }
524b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet}
534b52ec49fee79b0488d6a9eaaa4ea5d74ce90905Xavier Ducrohet
54