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    
021    package org.granite.generator.as3.reflect;
022    
023    import java.util.Set;
024    
025    import org.granite.generator.as3.ClientType;
026    import org.granite.generator.as3.PackageTranslator;
027    
028    
029    /**
030     * @author Franck WOLFF
031     */
032    public class ClientImport extends JavaImport {
033    
034            private final String className;
035            private final ClientType clientType = new ClientImportType();
036            
037        public ClientImport(JavaTypeFactory provider, String className, boolean property) {
038            super(provider, Object.class, null);
039            this.className = className;
040        }
041        
042        @Override
043        public boolean hasImportPackage() {
044            return true;
045        }
046        
047        @Override
048        public String getImportQualifiedName() {
049            return className;
050        }
051        
052        @Override
053        public String getImportPackageName() {
054            return className.indexOf(".") > 0 ? className.substring(0, className.lastIndexOf(".")) : "";
055        }
056        
057        @Override
058        public ClientType getAs3Type() {
059            return clientType;
060        }
061        
062        @Override
063        public ClientType getClientType() {
064            return clientType;
065        }
066    
067        private final class ClientImportType implements ClientType {
068    
069                    @Override
070                    public boolean hasPackage() {
071                            return hasImportPackage();
072                    }
073    
074                    @Override
075                    public String getPackageName() {
076                            return getImportPackageName();
077                    }
078    
079                    @Override
080                    public String getName() {
081                            return getImportQualifiedName();
082                    }
083    
084                    @Override
085                    public String getQualifiedName() {
086                            return getImportQualifiedName();
087                    }
088    
089                    @Override
090                    public Object getNullValue() {
091                            return null;
092                    }
093    
094                    @Override
095                    public Set<String> getImports() {
096                            return null;
097                    }
098    
099                    @Override
100                    public ClientType toArrayType() {
101                            return null;
102                    }
103    
104                    @Override
105                    public ClientType translatePackage(PackageTranslator translator) {
106                            return null;
107                    }
108            
109        }
110    }