View Javadoc

1   /* $Id: BookFactory.java 1102425 2011-05-12 19:03:34Z simonetripodi $
2    *
3    * Licensed to the Apache Software Foundation (ASF) under one or more
4    * contributor license agreements.  See the NOTICE file distributed with
5    * this work for additional information regarding copyright ownership.
6    * The ASF licenses this file to You under the Apache License, Version 2.0
7    * (the "License"); you may not use this file except in compliance with
8    * the License.  You may obtain a copy of the License at
9    *
10   *      http://www.apache.org/licenses/LICENSE-2.0
11   *
12   * Unless required by applicable law or agreed to in writing, software
13   * distributed under the License is distributed on an "AS IS" BASIS,
14   * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   * See the License for the specific language governing permissions and
16   * limitations under the License.
17   */
18  package org.apache.commons.digester3.annotations.catalog;
19  
20  import org.apache.commons.digester3.AbstractObjectCreationFactory;
21  import org.xml.sax.Attributes;
22  
23  /**
24   * @since 2.1
25   */
26  public final class BookFactory
27      extends AbstractObjectCreationFactory<Book>
28  {
29  
30      private final static String ISBN = "isbn";
31  
32      @Override
33      public Book createObject( Attributes attributes )
34          throws Exception
35      {
36          String isbn = attributes.getValue( ISBN );
37  
38          if ( isbn == null )
39          {
40              throw new Exception( "Mandatory isbn attribute not present on book tag." );
41          }
42  
43          return new Book( isbn );
44      }
45  
46  }