001/* $Id: BookFactory.java 1102425 2011-05-12 19:03:34Z simonetripodi $
002 *
003 * Licensed to the Apache Software Foundation (ASF) under one or more
004 * contributor license agreements.  See the NOTICE file distributed with
005 * this work for additional information regarding copyright ownership.
006 * The ASF licenses this file to You under the Apache License, Version 2.0
007 * (the "License"); you may not use this file except in compliance with
008 * the License.  You may obtain a copy of the License at
009 *
010 *      http://www.apache.org/licenses/LICENSE-2.0
011 *
012 * Unless required by applicable law or agreed to in writing, software
013 * distributed under the License is distributed on an "AS IS" BASIS,
014 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
015 * See the License for the specific language governing permissions and
016 * limitations under the License.
017 */
018package org.apache.commons.digester3.annotations.catalog;
019
020import org.apache.commons.digester3.AbstractObjectCreationFactory;
021import org.xml.sax.Attributes;
022
023/**
024 * @since 2.1
025 */
026public final class BookFactory
027    extends AbstractObjectCreationFactory<Book>
028{
029
030    private final static String ISBN = "isbn";
031
032    @Override
033    public Book createObject( Attributes attributes )
034        throws Exception
035    {
036        String isbn = attributes.getValue( ISBN );
037
038        if ( isbn == null )
039        {
040            throw new Exception( "Mandatory isbn attribute not present on book tag." );
041        }
042
043        return new Book( isbn );
044    }
045
046}