/* * Copyright (c) 2015. Developed by Hedgecode. * * 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.hedgecode.xml.xspf.bind; import org.hedgecode.xml.xspf.rng.Track; import org.hedgecode.xml.xspf.xsd.TrackType; import static org.hedgecode.xml.xspf.XSPFConstants.Format; /** * Playlist/Track Binder Factory. * * @author Dmitry Samoshin aka gotty */ public final class BinderFactory { public static PlaylistBinder createPlaylistBinder() { return getDefaultPlaylistBinder(); } public static PlaylistBinder createPlaylistBinder(Format format) { switch(format) { case RELAX_NG: return new RNGPlaylistBinder(); case XSD: return new XSDPlaylistBinder(); default: return getDefaultPlaylistBinder(); } } public static TrackBinder createTrackBinder() { return getDefaultTrackBinder(); } public static TrackBinder createTrackBinder(Format format) { switch(format) { case RELAX_NG: return new RNGTrackBinder(); case XSD: return new XSDTrackBinder(); default: return getDefaultTrackBinder(); } } public static TrackBinder createTrackBinder(Track track) { return new RNGTrackBinder(track); } public static TrackBinder createTrackBinder(TrackType trackType) { return new XSDTrackBinder(trackType); } private static PlaylistBinder getDefaultPlaylistBinder() { return new RNGPlaylistBinder(); } private static TrackBinder getDefaultTrackBinder() { return new RNGTrackBinder(); } }