1d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar/* 2d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Copyright (C) 2015 The Android Open Source Project 3d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * 4d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Licensed under the Apache License, Version 2.0 (the "License"); 5d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * you may not use this file except in compliance with the License. 6d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * You may obtain a copy of the License at 7d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * 8d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * http://www.apache.org/licenses/LICENSE-2.0 9d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * 10d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * Unless required by applicable law or agreed to in writing, software 11d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * distributed under the License is distributed on an "AS IS" BASIS, 12d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * See the License for the specific language governing permissions and 14d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar * limitations under the License. 15d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar */ 16d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 17fead9ca09b117136b35bc5bf137340a754f9edddGeorge Mountpackage android.databinding.tool.expr; 18d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 19e52882df6130221462bf07f5f2b52de5c4b0f8deGeorge Mountimport android.databinding.tool.writer.KCode; 20e52882df6130221462bf07f5f2b52de5c4b0f8deGeorge Mount 21d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyarpublic class StaticIdentifierExpr extends IdentifierExpr { 22d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 23d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar StaticIdentifierExpr(String name) { 24d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar super(name); 25d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar } 26d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar 27d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar @Override 28a70fed6415aa1e8bbbe929aee776402ac3b81c86George Mount public boolean isObservable() { 29a70fed6415aa1e8bbbe929aee776402ac3b81c86George Mount return false; 30a70fed6415aa1e8bbbe929aee776402ac3b81c86George Mount } 31a70fed6415aa1e8bbbe929aee776402ac3b81c86George Mount 32a70fed6415aa1e8bbbe929aee776402ac3b81c86George Mount @Override 33d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar public boolean isDynamic() { 34d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar return false; 35d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar } 36e52882df6130221462bf07f5f2b52de5c4b0f8deGeorge Mount 37e52882df6130221462bf07f5f2b52de5c4b0f8deGeorge Mount @Override 38d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount public String getInvertibleError() { 39d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount return "Class " + getResolvedType().toJavaCode() + 40d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount " may not be the target of a two-way binding expression"; 41d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount } 42d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount 43d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount @Override 44d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount public KCode toInverseCode(KCode value) { 45d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount throw new IllegalStateException("StaticIdentifierExpr is not invertible."); 46d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount } 47d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount @Override 48d3f2b9229472c9dae9bf4ae8b3e2d653b5653b01George Mount protected KCode generateCode(boolean expand) { 49e52882df6130221462bf07f5f2b52de5c4b0f8deGeorge Mount return new KCode(getResolvedType().toJavaCode()); 50e52882df6130221462bf07f5f2b52de5c4b0f8deGeorge Mount } 51d7af42b29ddf22f0068f7496c5ac6f4f34b543b6Yigit Boyar} 52