001/*
002  GRANITE DATA SERVICES
003  Copyright (C) 2011 GRANITE DATA SERVICES S.A.S.
004
005  This file is part of Granite Data Services.
006
007  Granite Data Services is free software; you can redistribute it and/or modify
008  it under the terms of the GNU Library General Public License as published by
009  the Free Software Foundation; either version 2 of the License, or (at your
010  option) any later version.
011
012  Granite Data Services is distributed in the hope that it will be useful, but
013  WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
014  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public License
015  for more details.
016
017  You should have received a copy of the GNU Library General Public License
018  along with this library; if not, see <http://www.gnu.org/licenses/>.
019*/
020
021package org.granite.generator.as3.reflect;
022
023import java.util.List;
024import java.util.Set;
025
026import org.granite.generator.as3.ClientType;
027import org.granite.generator.as3.PackageTranslator;
028
029
030/**
031 * @author Franck WOLFF
032 */
033public class ClientImport extends JavaImport {
034
035        private final String className;
036        private final ClientType clientType = new ClientImportType();
037        
038    public ClientImport(JavaTypeFactory provider, String className, boolean property) {
039        super(provider, Object.class, null);
040        this.className = className;
041    }
042    
043    @Override
044    public boolean hasImportPackage() {
045        return true;
046    }
047    
048    @Override
049    public String getImportQualifiedName() {
050        return className;
051    }
052    
053    @Override
054    public String getImportPackageName() {
055        return className.indexOf(".") > 0 ? className.substring(0, className.lastIndexOf(".")) : "";
056    }
057    
058    @Override
059    public ClientType getAs3Type() {
060        return clientType;
061    }
062    
063    @Override
064    public ClientType getClientType() {
065        return clientType;
066    }
067
068    private final class ClientImportType implements ClientType {
069
070                @Override
071                public boolean hasPackage() {
072                        return hasImportPackage();
073                }
074
075                @Override
076                public String getPackageName() {
077                        return getImportPackageName();
078                }
079
080                @Override
081                public String getName() {
082                        return getImportQualifiedName();
083                }
084
085                @Override
086                public String getQualifiedName() {
087                        return getImportQualifiedName();
088                }
089
090                @Override
091                public Object getNullValue() {
092                        return null;
093                }
094
095                @Override
096                public Set<String> getImports() {
097                        return null;
098                }
099            
100                @Override
101            public void addImports(Set<String> imports) {         
102            }
103
104                @Override
105                public ClientType toArrayType() {
106                        return null;
107                }
108
109                @Override
110                public ClientType translatePackage(PackageTranslator translator) {
111                        return null;
112                }
113
114                @Override
115                public ClientType translatePackages(List<PackageTranslator> translators) {
116                        return null;
117                }
118        
119    }
120}