All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.google.gxp.compiler.fs..svn.text-base.AbstractFileSystem.svn-base Maven / Gradle / Ivy

Go to download

Google XML Pages (GXP) is a templating system used to generate XML/SGML markup (most often HTML).

The newest version!
/*
 * Copyright (C) 2008 Google 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 com.google.gxp.compiler.fs;

import com.google.common.collect.Lists;

import java.nio.charset.Charset;
import java.util.*;
import java.util.regex.Pattern;

/**
 * Abstract base class for typical implementations of {@code FileSystem}. This
 * is useful for implementing {@code FileSystem}s that have all of the
 * following characteristics:
 * 
    *
  • use a single {@code FileStore} *
  • represent a filename list as a sequence of filenames separated by some * delimiter which can be matched by a regular expression *
*/ public abstract class AbstractFileSystem implements FileSystem { /** * Returns the FileStore used by this FileSystem. */ protected abstract FileStore getFileStore(); /** * Returns a regular expression which matches filename list delimters. */ protected abstract Pattern getFilenameListDelimiter(); /** * {@inheritDoc} * *

This implementation simply returns a {@code FileRef} with the abstract * name "/" on the {@code FileStore} returned by {@link #getFileStore()}. */ public final FileRef getRoot() { return new FileRef(getFileStore(), "/"); } /** * {@inheritDoc} * *

This implementation splits {@code filenameList} using the result of * {@link #getFilenameListDelimiter()} and parses the resulting filenames * with {@link #parseFilename(String)}. */ public final List parseFilenameList(String filenameList) { String[] filenames = getFilenameListDelimiter().split(filenameList, -1); List result = Lists.newArrayListWithExpectedSize(filenames.length); for (int i = 0; i < filenames.length; i++) { result.add(parseFilename(filenames[i])); } return Collections.unmodifiableList(result); } public Charset getDefaultCharset() { throw new UnsupportedOperationException(); } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy