Changeset 361

Show
Ignore:
Timestamp:
09/01/08 19:25:56 (3 months ago)
Author:
arneke
Message:

Cleanup of existing RESTful API code

Location:
trunk/geowebcache/src/main/java/org/geowebcache/rest
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • trunk/geowebcache/src/main/java/org/geowebcache/rest/RESTDispatcher.java

    r360 r361  
    133133        if (myRouter == null) { 
    134134            myRouter = new Router(); 
    135             myRouter.attach("/layers/", TileLayerResource.class); 
     135            //myRouter.attach("/layers/", TileLayerResource.class); 
    136136            myRouter.attach("/layers", TileLayerResource.class); 
    137137            myRouter.attach("/seed/", SeedResource.class); 
    138             myRouter.attach("/rest/layers/", TileLayerResource.class); 
    139             myRouter.attach("/rest/layers", TileLayerResource.class); 
    140138            myRouter.attach("/rest/seed/", SeedResource.class); 
    141139        } 
  • trunk/geowebcache/src/main/java/org/geowebcache/rest/TileLayerResource.java

    r357 r361  
    7676        super(context, request, response); 
    7777         
     78        System.out.println(this); 
     79         
    7880        // Prep 
    7981        RESTDispatcher restDispatch = RESTDispatcher.getInstance(); 
     
    8183        tlDispatcher = restDispatch.getTileLayerDispatcher(); 
    8284 
    83          
    84         String remainingString = (String) request.getResourceRef().getRemainingPart(); 
    85         String myReqLayerName = null; 
    86         if (remainingString == null) { 
    87             // request was made to ...rest/layers/ 
     85        // TODO this is really the kind of stuff RESTlet.org could do for us 
     86        //String remainingString = (String) request.getResourceRef().getRemainingPart(); 
     87         
     88        String lastSegment = request.getResourceRef().getLastSegment(); 
     89        String layerName = null; 
     90        String format = null; 
     91        if(0 < lastSegment.lastIndexOf(".")) { 
     92            String[] splitStr = lastSegment.split("\\."); 
     93            layerName = splitStr[0]; 
     94            format = splitStr[1]; 
     95        } else { 
     96            layerName = lastSegment; 
     97        } 
     98 
     99        if(format != null && format.equalsIgnoreCase("json")) { 
     100            getVariants().add(new Variant(MediaType.APPLICATION_JSON)); 
     101        } else { 
    88102            getVariants().add(new Variant(MediaType.TEXT_XML)); 
    89             currentLayer = null; 
    90         } else if (remainingString.indexOf('.') == -1) { 
    91             // no extension provided, default to xml 
    92             getVariants().add(new Variant(MediaType.TEXT_XML)); 
    93             myReqLayerName = remainingString; 
    94             currentLayer = tlDispatcher.getLayers().get(myReqLayerName); 
    95         } else if (remainingString.indexOf('.') != -1) { 
    96             myReqLayerName = remainingString.substring(0, remainingString 
    97                     .indexOf('.')); 
    98             String format = remainingString.substring(remainingString 
    99                     .indexOf('.') + 1); 
    100             if (format.equals("xml")) { 
    101                 getVariants().add(new Variant(MediaType.TEXT_XML)); 
    102             } else if (format.equals("json")) { 
    103                 getVariants().add(new Variant(MediaType.APPLICATION_JSON)); 
    104             } else if (format.equals("text")) { 
    105                 getVariants().add(new Variant(MediaType.TEXT_PLAIN)); 
    106             } 
    107             currentLayer = tlDispatcher.getLayers().get(myReqLayerName); 
    108         } 
    109  
     103        } 
     104         
     105        if(layerName != null && ! layerName.equalsIgnoreCase("layers")) { 
     106            currentLayer = tlDispatcher.getLayers().get(layerName); 
     107        } 
    110108    } 
    111109 
     
    116114    public Representation getRepresentation(Variant variant) { 
    117115        Representation result = null; 
    118         TileLayer tl = currentLayer; 
    119         if (variant.getMediaType().equals(MediaType.TEXT_PLAIN)) { 
    120             // create a text representation of the current layer 
    121             result = getStringRepresentation(currentLayer); 
    122         } else if (tl == null 
    123                 && variant.getMediaType().equals(MediaType.TEXT_XML)) { 
    124             // create a dom representation that will list of all available layers 
    125             result = getDomRepresentationAsListOfLayers(); 
    126         } else if (tl != null && variant.getMediaType().equals(MediaType.TEXT_XML)) { 
    127             // create xml representation of the currentLayer 
    128             result = getXMLRepresentation(currentLayer); 
    129         } else if (variant.getMediaType().equals(MediaType.APPLICATION_JSON)) { 
    130             // create JSONRepresentation of the currentLayer 
    131             result = getJsonRepresentation(currentLayer); 
     116         
     117        if(currentLayer == null) { 
     118            //if(variant.getMediaType() == MediaType.APPLICATION_JSON) { 
     119            //    result = getJSONRepresentationAsListOfLayers(); 
     120            //} else { 
     121                result = getDomRepresentationAsListOfLayers(); 
     122            //} 
     123        } else { 
     124            if(variant.getMediaType() == MediaType.APPLICATION_JSON) { 
     125                result = getXMLRepresentation(currentLayer); 
     126            } else { 
     127                result = getJsonRepresentation(currentLayer); 
     128            } 
    132129        } 
    133130 
    134131        return result; 
    135132    } 
     133     
     134     
    136135    /** 
    137136     * Returns a DomRepresentation of all available layers 
     
    169168        } 
    170169        return new DomRepresentation(MediaType.TEXT_XML, doc); 
    171     } 
    172  
    173     /** 
    174      * Returns a StringRepresentation of the layer ONLY FOR TESTING PURPOSES 
    175      *  
    176      * @param layer 
    177      * @return 
    178      */ 
    179     public StringRepresentation getStringRepresentation(TileLayer layer) { 
    180         StringBuilder sb = new StringBuilder(); 
    181         sb.append("Layer details\n"); 
    182         sb.append("_____________\n"); 
    183         sb.append("Name: ").append(layer.getName()).append('\n'); 
    184         return new StringRepresentation(sb); 
    185170    } 
    186171 
     
    378363        } 
    379364    } 
    380      
    381 //    public void setXMLConfiguration(TileLayerDispatcher tlDispatcher) { 
    382 //        this.tlDispatcher = tlDispatcher; 
    383 //         
    384 //    } 
    385 // 
    386 //    public void setXMLConfiguration(XMLConfiguration xmlConfig) { 
    387 //        this.xmlConfig = xmlConfig; 
    388 //    } 
    389365}