15d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin/* 25d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * Copyright (C) 2014 Google, Inc. 35d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * 45d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * Licensed under the Apache License, Version 2.0 (the "License"); 55d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * you may not use this file except in compliance with the License. 65d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * You may obtain a copy of the License at 75d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * 85d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * http://www.apache.org/licenses/LICENSE-2.0 95d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * 105d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * Unless required by applicable law or agreed to in writing, software 115d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * distributed under the License is distributed on an "AS IS" BASIS, 125d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 135d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * See the License for the specific language governing permissions and 145d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin * limitations under the License. 155d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin */ 165d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffinpackage dagger.internal.codegen.writer; 175d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin 185d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffinimport java.io.IOException; 195d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffinimport java.util.Set; 205d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin 215d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffinfinal class ArrayTypeName implements TypeName { 225d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin private final TypeName componentType; 235d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin 245d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin ArrayTypeName(TypeName componentType) { 255d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin this.componentType = componentType; 265d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin } 275d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin 285d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin @Override 295d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin public Set<ClassName> referencedClasses() { 305d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin return componentType.referencedClasses(); 315d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin } 325d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin 335d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin @Override 345d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin public Appendable write(Appendable appendable, Context context) throws IOException { 355d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin return componentType.write(appendable, context).append("[]"); 365d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin } 375d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin 385d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin @Override 395d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin public boolean equals(Object obj) { 405d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin return (obj instanceof ArrayTypeName) 415d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin && this.componentType.equals(((ArrayTypeName) obj).componentType); 425d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin } 435d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin 445d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin @Override 455d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin public int hashCode() { 465d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin return componentType.hashCode(); 475d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin } 485d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin 495d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin @Override 505d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin public String toString() { 515d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin return Writables.writeToString(this); 525d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin } 535d3207ac2713386ed61c6ca8f0356e8f093a62e1Paul Duffin} 54