Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
  /*
   * Copyright 2011 JBoss Inc 
   *
   * Licensed under the Apache License, Version 2.0 (the "License");
   * you may not use this file except in compliance with the License.
   * You may obtain a copy of the License at
   *
   *      http://www.apache.org/licenses/LICENSE-2.0
   *
  * Unless required by applicable law or agreed to in writing, software
  * distributed under the License is distributed on an "AS IS" BASIS,
  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
 package org.jbpm.form.builder.services.impl.fs;
 
 import java.io.File;
 import java.io.Reader;
 import java.net.URL;
 import java.util.List;
 import java.util.Map;
 
 import  org.apache.commons.vfs.AllFileSelector;
 import  org.apache.commons.vfs.FileObject;
 import  org.apache.commons.vfs.VFS;
 
 
 public class FSMenuService extends BaseMenuService {
 
     @Override
     	Gson gson = new Gson();
         List<MenuOptionDescriptionretval = new ArrayList<MenuOptionDescription>();
         try {
             URL url = asURL("/menuOptions.json");
             retval = gson.fromJson(createReader(url), new TypeToken<List<MenuOptionDescription>>(){}.getType());
         } catch (URISyntaxException e) {
             throw new MenuServiceException("Problem finding menu options json file"e); 
         } catch (FileNotFoundException e) {
             throw new MenuServiceException("No menu options json file found"e);
         } catch (Exception e) {
             throw new MenuServiceException("Unexpected error"e);
         }
         return retval;
     }
     
     @Override
     	Map<StringList<MenuItemDescription>> retval = null;
         try {
             FormRepresentationDecoder decoder = FormEncodingFactory.getDecoder();
             URL url = asURL("/menuItems.json");
             String json = readURL(url);
             retval = decoder.decodeMenuItemsMap(json);
         } catch (FormEncodingException e) {
             throw new MenuServiceException("Problem parsing menu items json file"e);
         } catch (URISyntaxException e) {
             throw new MenuServiceException("Problem finding menu items json file"e);
         } catch (FileNotFoundException e) {
             throw new MenuServiceException("No menu items json file found"e);
         } catch (IOException e) {
             throw new MenuServiceException("Problem reading menu items json file"e);
         } catch (Exception e) {
             throw new MenuServiceException("Unexpected error"e);
         }
         return retval;
     }
 
     @Override
     	Gson gson = new Gson();
     	List<ValidationDescriptionretval = null;
         try {
             URL url = asURL("/validations.json");
             retval = gson.fromJson(createReader(url), new TypeToken<List<ValidationDescription>>(){}.getType());
         } catch (URISyntaxException e) {
             throw new MenuServiceException("Problem finding validations json file"e); 
        } catch (FileNotFoundException e) {
            throw new MenuServiceException("No validations json file found"e);
        } catch (Exception e) {
            throw new MenuServiceException("Unexpected error"e);
        }
        return retval;
    }
    
    @Override
    public void saveMenuItem(String groupNameMenuItemDescription itemthrows MenuServiceException {
        addToMap(groupNameitemitems);
        writeMenuItems(items);
    }
    
    @Override
    public void deleteMenuItem(String groupNameMenuItemDescription itemthrows MenuServiceException {
        removeFromMap(groupNameitemitems);
        writeMenuItems(items);
    }
    @Override
        InputStream input = getClass().getResourceAsStream("/FormBuilder.properties");
        Properties props = new Properties();
        try {
            props.load(input);
        } catch (IOException e) {
            throw new MenuServiceException("Couldn't read FormBuilder.properties"e);
        }
        Map<StringStringretval = new HashMap<StringString>();
        for (Map.Entry<ObjectObjectentry : props.entrySet()) {
            retval.put(entry.getKey().toString(), entry.getValue().toString());
        }
        return retval;
    }
    
    private void writeMenuItems(Map<StringList<MenuItemDescription>> itemsthrows MenuServiceException {
        try {
            FormRepresentationEncoder encoder = FormEncodingFactory.getEncoder();
            String json = encoder.encodeMenuItemsMap(items);
            URL url = asURL("/menuItems.json");
            writeToURL(urljson);
        } catch (FormEncodingException e) {
            throw new MenuServiceException("Problem transforming menu items to json"e);
        } catch (URISyntaxException e) {
            throw new MenuServiceException("Problem finding menu items json file"e);
        } catch (FileNotFoundException e) {
            throw new MenuServiceException("No menu items json file found"e);
        } catch (IOException e) {
            throw new MenuServiceException("Problem writing menu items json file"e);
        } catch (Exception e) {
            throw new MenuServiceException("Unexpected error"e);
        }
    }
    protected void writeToURL(URL urlString jsonthrows FileNotFoundExceptionIOException {
        if (url.toExternalForm().startsWith("vfs")) {
            FileObject to = VFS.getManager().resolveFile(url.toExternalForm());
            File tmpFile = File.createTempFile("xxFilexx"".json");
            FileUtils.writeStringToFile(tmpFilejson);
            FileObject from = VFS.getManager().toFileObject(tmpFile);
            to.copyFrom(fromnew AllFileSelector());
            FileUtils.deleteQuietly(tmpFile);
        } else {
            FileUtils.writeStringToFile(FileUtils.toFile(url), json);
        }
    }
    
    protected URL asURL(String paththrows URISyntaxException {
        return getClass().getResource(path);
    }
    
    protected Reader createReader(URL urlthrows FileNotFoundExceptionIOException {
        return new InputStreamReader(url.openStream());
    }
    protected String readURL(URL urlthrows FileNotFoundExceptionIOException {
        if (url.toExternalForm().startsWith("vfs")) {
            FileObject from = VFS.getManager().resolveFile(url.toExternalForm());
            return IOUtils.toString(from.getContent().getInputStream());
        } else {
            return FileUtils.readFileToString(FileUtils.toFile(url));
        }
    }
New to GrepCode? Check out our FAQ X