Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2002-2014 "Neo Technology," Network Engine for Objects in Lund AB [http://neotechnology.com] This file is part of Neo4j. Neo4j is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
 
 package org.neo4j.server.rest.repr;
 
 import java.net.URI;
 import java.util.List;
 import java.util.Map;
 
 abstract class Serializer
 {
     private final URI baseUri;
     private final ExtensionInjector extensions;
 
     SerializerURI baseUriExtensionInjector extensions )
     {
         this. = baseUri;
         this. = extensions;
     }
 
     final void serializeMappingWriter mappingMappingRepresentation value )
     {
         injectExtensionsmappingvalue );
         value.serializenew MappingSerializermapping ) );
         mapping.done();
     }
 
     static void injectExtensionsMappingWriter mappingMappingRepresentation valueURI baseUri,
             ExtensionInjector injector )
     {
         if ( value instanceof ExtensibleRepresentation && injector != null )
         {
             Map<String/*name*/List<String/*method*/>> extData = injector.getExensionsForvalue.type.extend );
             String entityIdentity = ( (ExtensibleRepresentationvalue ).getIdentity();
             if ( extData != null )
             {
                 MappingWriter extensions = mapping.newMapping."extensions" );
                 for ( Map.Entry<StringList<String>> ext : extData.entrySet() )
                 {
                     MappingWriter extension = extensions.newMapping.ext.getKey() );
                     for ( String method : ext.getValue() )
                     {
                         StringBuilder path = new StringBuilder"/ext/" ).appendext.getKey() );
                         path.append"/" ).appendvalue.type.valueName );
                         if ( entityIdentity != null ) path.append"/" ).appendentityIdentity );
                         path.append"/" ).appendmethod );
                         extension.writeValue.methodjoinBaseWithRelativePathbaseUri,
                                 path.toString() ) );
                     }
                     extension.done();
                 }
                 extensions.done();
             }
         }
     }
 
     final void serializeListWriter listListRepresentation value )
     {
         value.serializenew ListSerializerlist ) );
         list.done();
     }
 
     final String relativeUri(String path)
     {
         return joinBaseWithRelativePath(path);
     }
 
     final String relativeTemplateString path )
     {
         return joinBaseWithRelativePathpath );
     }
 
     static String joinBaseWithRelativePathURI baseUriString path )
     {
         String base = baseUri.toString();
         final StringBuilder result = new StringBuilder(base.length() + path.length() +1).append(base);
         if ( base.endsWith"/" ) )
         {
             if ( path.startsWith"/" ) )
             {
                 return result.append(path.substring(1)).toString();
             }
         }
        else if ( !path.startsWith"/" ) )
        {
            return result.append('/').append(path).toString();
        }
        return result.append(path).toString();
    }
    protected void checkThatItIsBuiltInTypeObject value )
    {
        if ( !"java.lang".equalsvalue.getClass().getPackage().getName() ) )
        {
            throw new IllegalArgumentException"Unsupported number type: " + value.getClass() );
        }
    }
New to GrepCode? Check out our FAQ X