1 /*
   2  * $Id$
   3  *
   4  * Copyright (c) 2012, 2016, Oracle and/or its affiliates. All rights reserved.
   5  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
   6  *
   7  * This code is free software; you can redistribute it and/or modify it
   8  * under the terms of the GNU General Public License version 2 only, as
   9  * published by the Free Software Foundation.  Oracle designates this
  10  * particular file as subject to the "Classpath" exception as provided
  11  * by Oracle in the LICENSE file that accompanied this code.
  12  *
  13  * This code is distributed in the hope that it will be useful, but WITHOUT
  14  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
  15  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
  16  * version 2 for more details (a copy is included in the LICENSE file that
  17  * accompanied this code).
  18  *
  19  * You should have received a copy of the GNU General Public License version
  20  * 2 along with this work; if not, write to the Free Software Foundation,
  21  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
  22  *
  23  * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
  24  * or visit www.oracle.com if you need additional information or have any
  25  * questions.
  26  */
  27 package com.sun.interview;
  28 
  29 import com.sun.interview.Interview.Fault;
  30 import java.io.File;
  31 
  32 /**
  33  * The interface that implements bridge between javax.help package and
  34  * JavaTest. Default implementation of this interface just provides stubs,
  35  * it doesn't use javax.help and could be used in the batch mode.
  36  * Interview while initialization checks if Desktop is available or not,
  37  * if yes, the rich factory will be used.
  38  *
  39  * @author Dmitry Fazunenko
  40  */
  41 public interface HelpSetFactory {
  42 
  43     /**
  44      * Creates an instance of HelpSet.
  45      * Real implementation should create of javax.help.HelpSet, when a
  46      * stub implementation just object.
  47      *
  48      * @throws com.sun.interview.Interview.Fault if something went wrong
  49      */
  50     public Object createHelpSetObject(String name, Class c) throws Interview.Fault;
  51 
  52     /**
  53      * Creates an instance of HelpSet.
  54      * Real implementation should create of javax.help.HelpSet, when a
  55      * stub implementation just object.
  56      *
  57      * @throws com.sun.interview.Interview.Fault if something went wrong
  58      */
  59     public Object createHelpSetObject(String name, File file) throws Interview.Fault;
  60 
  61     /**
  62      * Updates a HelpSet instance associated with the given interview.
  63      *
  64      * @param interview - interview object to reset HelpSet
  65      * @param object - an instance of javax.help.HelpSet
  66      */
  67     public Object updateHelpSetObject(Interview interview, Object object);
  68 
  69     public Object createHelpID(Object hs, String str);
  70 
  71 
  72     /**
  73      * The very default implementation of the HelpSetFactory interface.
  74      * It should be used in case when help is not required (command line mode)
  75      */
  76     public static final HelpSetFactory DEFAULT = new Default();
  77 
  78     static class Default implements HelpSetFactory {
  79         private static final Object EMPTY = new Object();
  80 
  81         public Object createHelpSetObject(String name, Class c) throws Fault {
  82             return EMPTY;
  83         }
  84 
  85         public Object createHelpSetObject(String name, File file) throws Fault {
  86             return EMPTY;
  87         }
  88 
  89         public Object createHelpID(Object hs, String str) {
  90             return null;
  91         }
  92 
  93         public Object updateHelpSetObject(Interview interview, Object object) {
  94             return object;
  95         }
  96 
  97     }
  98 
  99 }