WO2001052082A2 - System, method and article of manufacture for a variable storage framework - Google Patents
System, method and article of manufacture for a variable storage framework Download PDFInfo
- Publication number
- WO2001052082A2 WO2001052082A2 PCT/US2001/000737 US0100737W WO0152082A2 WO 2001052082 A2 WO2001052082 A2 WO 2001052082A2 US 0100737 W US0100737 W US 0100737W WO 0152082 A2 WO0152082 A2 WO 0152082A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- variable
- data associated
- data
- accessor
- value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4488—Object-oriented
- G06F9/449—Object-oriented method invocation or resolution
Definitions
- the present invention relates generally to computer programming systems, and more particularly to data access in object oriented programming.
- Class A template of a program object. It defines the data components of the object and includes the code segments or methods that can be performed using the object.
- Object An instance of a class.
- the actual data storage defined by the class is encapsulated in the object.
- Method A named code fragment associated with a class. Each method implements a function which may be performed on an object of a specific class.
- Accessor A special class defined for the purpose of storing and retrieving data as described herein.
- Figure 1 is an illustration showing a prior art data retrieval and storage system 100.
- the data retrieval and storage system 100 includes a predefined class named VARIABLE_CLASS 102 having variable Value 108, and data retrieval and storage methods GetValue 104 and Set Value 106.
- Method GetValue 104 retrieves data stored in variable Value 108
- method Set Value 106 stores data in variable Value 108.
- method Set Value 106 calls function Check_Value 110 whenever it is executed.
- function Check_Value 110 checks to make sure the value being stored in variable Value 108 is within certain bounds, for example a number between 1-200.
- the data retrieval and storage system 100 further includes object Age 112, which is of class VARIABLE_CLASS 102, and object A 114 that uses the methods of object Age 112 to store and retrieve data.
- object A 114 uses method Set Value 106 to store data in variable Value 108, which is located in object Age 112.
- the function Check_Value 110 is called.
- SUBCLASS_VARIABLE 116 For example, a developer creates a subclass of class VARIABLE_CLASS 102 named SUBCLASS_VARIABLE 116.
- Subclass SUBCLASS_VARIABLE 116 includes variable New_Value 117, and data retrieval and storage methods GetValue 118 and SetValue 120.
- methods GetValue 118 and SetValue 120 overload methods GetValue 104 and SetValue 106 defined in class VARIABLE_CLASS 102.
- GetValue 118 and SetValue 120 overload methods GetValue 104 and SetValue 106 defined in class VARIABLE_CLASS 102.
- object Child_Age 122 is of subclass SUBCLASS_VARIABLE 116, and thus includes methods GetValue 118 and SetValue 120 from SUBCLASS_VARIABLE 116, as well as variable New_Value 117.
- object B 124 uses the method SetValue 120 of object Child_Age 122 to store data in variable NewJValue 117, the data is no longer checked by method Check_Value 110 before being stored in variable New_Value 117. Thus, improper data may be stored in variable NewJValue 117, possibly causing a system wide crash.
- class VARIABLE_CLASS 102 must either disallow modification of the data retrieval and storage methods, or risk system crashes and other undesirable events if essential operations are not performed during data retrieval and storage routines.
- a system, method and article of manufacture are provided for managing data associated with a variable.
- a variable with an accessor object assigned thereto.
- Such accessor object includes a code segment dictating a manner in which data associated with the variable is managed in memory.
- the accessor object assigned to the variable is invoked. Thereafter, the data associated with the variable is handled in memory as prescribed by the accessor object.
- the handling of the data associated with the variable includes storing or retrieving the data in the memory.
- such handling may include constraining a value of the data in the memory. Further, it may include mapping an undefined value of the data to a defined value in the memory.
- the accessor object may be programmable.
- the data associated with the variable may be stored and retrieved to or from memory over a network.
- network may include a wide area network such as the Internet and employ a protocol such as TCP/IP and/or IPX.
- the present invention thus includes an access delegation mechanism for data storage.
- the implementation derives much greater flexibility by delegating the storage process to the accessor object.
- the accessor object may manage data in any desired way, rather than retrieving it in the standard manner. Unlike the case of sub-classing, however, the overall behavior of the storage mechanism is maintained.
- the accessor object may be implemented as an object held by the variable. Completely new accessor objects can be implemented, subclasses of existing accessor objects can be created, or the default accessor object may be utilized. In addition, the accessor object may be changed at run time if necessary. This feature might allow an object to migrate from a local computer to a shared server by delegating where its data was stored.
- Figure 1 illustrates a data storage mechanism of the prior art
- Figure 2 is a schematic diagram illustrating one exemplary hardware implementation of the present invention
- Figure 3 is a flow diagram illustrating the accessor object that facilitates storage of data associated with variables in accordance with one embodiment of the present invention
- Figure 4 is a flowchart illustrating a method of storing data associated with a variable in accordance with one embodiment of the present invention
- Figure 5 is a flowchart illustrating one example of a way of retrieving data associated with a variable in accordance with one embodiment of the present invention
- Figure 6 is a flowchart illustrating one example of a way of setting data associated with a variable in accordance with one embodiment of the present invention
- Figures 7-10 are flowcharts illustrating examples of how various accessor objects are invoked to handle data during the methods of Figures 5 and 6;
- FIGS 11-14 illustrate flowcharts showing processes carried out by the accessor objects upon being invoked in the processes of Figures 7-10.
- Figure 1 illustrates a data storage mechanism of the prior art.
- Figures 2-14 illustrate a technique of the present invention which is capable of overcoming the problems associated with utilizing the data storage mechanism of Figure 1 in an object oriented programming environment.
- the present invention addresses the issue of subclassing control by the use of modifiable accessor objects to provide low level data control while still allowing predefined classes to enforce essential data storage and retrieval routines.
- FIG. 2 is a schematic diagram of one possible hardware implementation by which the present invention may be carried out. As shown, the present invention may be practiced in the context of a personal computer such as an IBM compatible personal computer, Apple Macintosh computer or UNLX based workstation.
- a personal computer such as an IBM compatible personal computer, Apple Macintosh computer or UNLX based workstation.
- FIG. 2 illustrates a typical hardware configuration of a workstation in accordance with one embodiment having a central processing unit 210, such as a microprocessor, and a number of other units interconnected via a system bus 212.
- a central processing unit 210 such as a microprocessor
- the workstation shown in Figure 2 includes a Random Access Memory (RAM) 214, Read Only Memory (ROM) 216, an I/O adapter 218 for connecting peripheral devices such as disk storage units 220 to the bus 212, a user interface adapter 222 for connecting a keyboard 224, a mouse 226, a speaker 228, a microphone 232, and/or other user interface devices such as a touch screen (not shown) to the bus 212, communication adapter 234 for connecting the workstation to a communication network 235 (e.g., a data processing network) and a display adapter 236 for connecting the bus 212 to a display device 238.
- a communication network 235 e.g., a data processing network
- display adapter 236 for connecting the bus 212 to a display device 238.
- the workstation typically has resident thereon an operating system such as the Microsoft Windows NT or Windows/95 Operating System (OS), the IBM OS/2 operating system, the MAC OS, or UNLX operating system.
- OS Microsoft Windows NT or Windows/95 Operating System
- IBM OS/2 operating system the IBM OS/2 operating system
- MAC OS the MAC OS
- UNLX operating system the Microsoft Windows NT or Windows/95 Operating System
- Those skilled in the art will appreciate that the present invention may also be implemented on other platforms and operating systems.
- FIG. 3 is an illustration showing a data storage and retrieval system 300 in accordance with one embodiment of the present invention.
- the data storage and retrieval system 300 includes a predefined class VARIABLE_CLASS 302, and an accessor class ACCESSOR_CLASS 304.
- Class VARIABLE ASS 302 includes data retrieval and storage methods GetValue 306 and SetValue 308.
- class ACCESSOR_CLASS 304 includes data retrieval and storage methods getActual Value 310 and setActual Value 312.
- methods GetValue 306 and SetValue 308 include calls to methods getActualValue 310 and setActualValue 312 of class ACCESSOR_CLASS 304.
- methods GetValue 306 and SetValue 308 also include calls to data checking function Data_Check 314.
- Function Data_Check 314 represents routines that a creator of class VARIABLE_CLASS 302 desires to enforce in later created subclasses of class VARIABLE_CLASS 302, such as data checking routines, or default value routines.
- methods GetValue 306 and SetValue 308 are preferably declared “final.” By declaring methods GetValue 306 and SetValue 308 "final,” the compiler will not allow methods GetValue 306 and SetValue 308 to be overloaded by subsequent subclassing of class VARIABLE_CLASS 302. These functions thus remain constant, and therefore allow enforcement of essential routines called within them, in further subclasses of parent class VARIABLE_CLASS 302.
- methods getActualValue 310 and setActualValue 312 are data retrieval and storage methods that are capable of being overloaded by creating subclasses of class ACCESSOR_CLASS 304. These methods may be overloaded by developers to suit their data retrieval and storage needs. For example, methods getActualValue 310 and setActualValue 312 may be designed to read and write to an array of data, an internal storage location of an object, or to storage located on a server accessed via the Internet, as described in greater detail subsequently.
- objects of class ACCESSOR_CLASS 304 are utilized to actually access and retrieval data.
- object AGE 316 is an object of type VARIABLE_CLASS 302
- object Accessor 318 is an object of type ACCESSOR__CLASS 304.
- Object A 320 is an object that uses methods GetValue 306 and SetValue 308 of object AGE 316 to store and retrieve data.
- function Data_Check 314 is always executed whenever data is stored or retrieved by object A 320.
- function Data_Check 314 represents routines that a creator of class VARIABLE_CLASS 302 desires to enforce in later created subclasses of class VARIABLE_CLASS 302, such as data checking routines, or default value routines.
- Method getActualValue 310 is the method that actually retrieves data from a physical memory location on the system, for example from data array 322. Since, both method getActualValue 310 and function Data_Check 314 are called from method GetValue 306, function Data_Check 314 will always be executed whenever getActualValue 310 is executed.
- Method setActualValue 312 is the method that actually stores data to a physical memory location on the system, for example to data array 322. Since, both method setActualValue 312 and function Data_Check 314 are called from method SetValue 306, function Data_Check 314 will always be executed whenever setActualValue 310 is executed.
- object B 324 is another object that uses methods GetValue 306 and SetValue 308 of object AGE 316 to store and retrieve data.
- object Accessor' 326 and overloading methods getActualValue 310 and setActualValue 312 with new data retrieval and storage methods, a later developer can have data accessed, for example, from a server 330 across the Internet 328.
- FIG. 4 is a flowchart illustrating the manner in which the accessor object 300 manages data associated with a variable in accordance with one embodiment of the present invention.
- a variable is provided with an accessor object 300 assigned thereto.
- Such accessor object 300 includes a code segment dictating a manner in which data associated with the variable is managed in the memory 304.
- the accessor object assigned to the variable is invoked upon a variable being called. Thereafter, the data associated with the variable is handled in memory as prescribed by the accessor object. Note operation 404.
- the accessor object By utilizing the accessor object, the underlying data exchange in memory may be maintained uniform while various desired methods may be executed during the data exchange. This allows external programmable flexibility without sacrificing stability that results from uniformity while interfacing with the memory storage mechanism.
- the data may be handled in any desired manner which may be programmable, or even changed when particular code is executed.
- the handling of the data associated with the variable may include storing or retrieving the data in the memory.
- the data associated with the variable may be stored and retrieved to or from memory over a network.
- Such network may include a wide area network such as the Internet and employ a protocol such as TCP/IP and/or IPX.
- the variable may be accessed by a graphics-based rule driven application program.
- Stagecast Creator may be found on the Internet at http://www.stagecast.com.
- Such application program may allow the same to be reprogrammed, thus particularly necessitating the aforementioned accessor object for stability purposes.
- the handling may include constraining a value of the data in the memory, or mapping an undefined value of the data to a defined value in the memory. Additional detailed examples of various ways the data may be managed will be set forth during reference to Figures 5-14.
- the accessor object may be implemented as an object held by the variable. Completely new accessor objects can be implemented, subclasses of existing accessors can be created, or the default accessor may be utilized.
- the accessor object may be set once, at the creation of the variable, or dynamically changed during the variable's lifetime, according to the requirements of the system. Examples of data storage and retrieval methods of accessor objects will now be set forth.
- Figure 5 is a flowchart illustrating one example of retrieving data associated with a variable by way of a get Value method 500. This flowchart illustrates the techniques currently in use by Stagecast Creator. As shown, in operation 502, a getActualValue method is invoked for a predetermined owner. Such operation 502 renders a new value in a manner that will be set forth in greater detail in Figure 7.
- decision 504 it is determined whether the new value is unbound. In the present description, whether or not a value is unbound depends on the getDirectValue method of the accessor. If the accessor determines that there is no known value for the variable and owner, it returns the special token UNBOUND. If the value rendered by the getActualValue method 502 is unbound, a mapUnboundValue method is invoked for the present variable and the present owner. Note operation 506. As mentioned earlier, the various methods may be different for each variable and owner.
- mapUnboundValue method 506 By invoking the mapUnboundValue method 506, a new value is rendered which overwrites the new value generated in operation 502. Thereafter, the new value rendered by invoking the mapUnboundValue method is returned in operation 508. Further details relating to the manner in which the mapUnboundValue method is invoked will be set forth hereinafter in greater detail with reference to Figure 9.
- Figure 6 is a flowchart illustrating an example of a way of storing, or setting, data associated with a variable in accordance with a setValue method 600 of the present invention.
- a constrainValue method is invoked for a predetermined owner.
- Such operation 602 renders a new value that overwrites the value associated with the current variable in a manner that will be set forth in greater detail in Figure 10.
- decision 604 it is determined whether the new value is illegal. Whether or not the new value is illegal depends on the constrainDirect method of the accessor. If the accessor determines that the value is not legal, it returns the special token ILLEGAL. If so, the process terminates in a return operation 606. If, on the other hand, the new value is determined to not be illegal, or legal, in decision 604, another method, setActualValue method, is invoked for the present variable and the present owner in operation 608. It is then determined in decision 610 whether the value rendered by invoking the setActualValue method 608 is unbound.
- a getActualValue method is invoked for the current variable, and the appropriate current owner in order to render a value that overwrites the value generated by invoking the setActualValue method in operation 608. Additional information relating to invoking of the getActualValue method of operation 612 will be forth in greater detail in Figure 7.
- a parent is an entity that subclasses the owner. If it is determined that a parent exists, a return operation 616 follows.
- Figures 7-10 are flowcharts illustrating examples of how various accessor objects are invoked to handle data associated with various other variables required during the methods of Figures 5 and 6.
- Figure 7 illustrates the method associated with invoking the getActualValue method 700 which includes obtaining the accessor object, Accessor getDirect Value, of the current variable in 702.
- the accessor object, Accessor getDirect Value is invoked in operation 704 for the current particular variable and owner.
- the accessor object, Accessor getDirectValue returns a new value in operation 706. Additional information on the manner in which the value is rendered by the accessor object, Accessor getDirectValue, will be set forth in greater detail during reference to Figure 12.
- Figure 8 illustrates the method associated with invoking the setActualValue method 800 which includes obtaining the accessor object, Accessor setDirectValue, of the current variable in 802. Next, the accessor object, Accessor setDirectValue, is invoked in operation 804 for the current particular variable and owner after which a return operation 806 ensues.
- Figure 9 illustrates the method associated with invoking the mapUnboundValue method
- Accessor mapUnboundDirect returns a new value in operation 904.
- Figure 10 illustrates the method associated with invoking the constrainValue method 1002 which includes obtaining the accessor object, Accessor constrainDirect, of the current variable in 1004. Next, the accessor object, Accessor constrainDirect, is invoked in operation 1006 for the current particular variable and owner. Once invoked, the accessor object, Accessor constrainDirect, returns a new value in operation 1008.
- Figures 11-14 illustrate flowcharts showing methods carried out by the accessor objects upon being invoked in the processes of Figures 7-10.
- Figure 11 illustrates the method associated with the accessor object, Accessor setDirectValue, 1100. As shown, it is first decided in decision 1102 whether the current variable has a value table. If not, a value table is created in operation 1104. In the present description, a value table includes a database of owner, value pairs.
- decision 1102 If it is decided in decision 1102 that a value table exists, it is then determined in decision 1106 whether the value is unbound. If so, a value table entry is removed for the owner in operation 1108. If not, a value is put into the value table for the owner in operation 1110. The method associated with the accessor object, Accessor setDirectValue, is then terminated in operation 1112.
- Figure 12 illustrates the method associated with the accessor object, Accessor getDirectValue, 1200. As shown, it is first decided in decision 1202 whether the current variable has a variable table, hi the present description, a variable table includes a database of owner, value pairs. If not, a return unbound operation 1204 is performed.
- decision 1202 If it is decided in decision 1202 that a variable table exists, it is then determined in decision 1206 whether an entry exists for the current owner. If not, the return unbound operation 1204 ensues. If an entry in the variable table exists for the current owner, however, the entry for the owner in the value table is assigned as the value, as indicated in operation 1208. The value is then returned in operation 1210.
- Figure 13 illustrates the method associated with the accessor object, Accessor mapUnBoundDirect, 1300. As shown, it is first decided in decision 1302 whether the current owner has a parent. If not, a return operation 1304 is performed which returns a default value of the variable.
- the getActualValue method is invoked for the current owner and parent, thus rendering a value in operation 1306. It is then determined in decision 1308 whether the value generated by invoking the getActualValue method is unbound. If so, the return operation 1304 is executed which returns the default value of the variable. If the value rendered by invoking the getActualValue method is not unbound, or bound, it is returned in operation 1310.
- Figure 14 illustrates the method associated with the accessor object, Accessor constrainDirect, 1400. Such method simply includes returning the current value of the variable in operation 1402.
- the default implementation of constrainDirect never returns the token ILLEGAL.
- other accessors may. For example, an accessor that constrains the value to a positive integer would examine the input value, if it was a positive integer it would return the value passed in, if it were a negative integer, or a string, or some other object, it would return the ILLEGAL token.
- the constrainDirect method may also modify the value. For example, instead of the procedure described previously, a positive integer accessor might examine the input value and truncate any floating point numbers to integers, then return 0 for all negative values, and return ILLEGAL only for a non-numeric value.
Abstract
Description
Claims
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU2001227781A AU2001227781A1 (en) | 2000-01-12 | 2001-01-09 | System, method and article of manufacture for a variable storage framework |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US48219400A | 2000-01-12 | 2000-01-12 | |
US09/482,194 | 2000-01-12 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001052082A2 true WO2001052082A2 (en) | 2001-07-19 |
WO2001052082A3 WO2001052082A3 (en) | 2002-03-07 |
Family
ID=23915092
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2001/000737 WO2001052082A2 (en) | 2000-01-12 | 2001-01-09 | System, method and article of manufacture for a variable storage framework |
Country Status (2)
Country | Link |
---|---|
AU (1) | AU2001227781A1 (en) |
WO (1) | WO2001052082A2 (en) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4884217A (en) * | 1987-09-30 | 1989-11-28 | E. I. Du Pont De Nemours And Company | Expert system with three classes of rules |
US5504892A (en) * | 1994-09-08 | 1996-04-02 | Taligent, Inc. | Extensible object-oriented file system |
US5864862A (en) * | 1996-09-30 | 1999-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for creating reusable components in an object-oriented programming environment |
-
2001
- 2001-01-09 WO PCT/US2001/000737 patent/WO2001052082A2/en active Application Filing
- 2001-01-09 AU AU2001227781A patent/AU2001227781A1/en not_active Abandoned
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4884217A (en) * | 1987-09-30 | 1989-11-28 | E. I. Du Pont De Nemours And Company | Expert system with three classes of rules |
US5504892A (en) * | 1994-09-08 | 1996-04-02 | Taligent, Inc. | Extensible object-oriented file system |
US5864862A (en) * | 1996-09-30 | 1999-01-26 | Telefonaktiebolaget Lm Ericsson (Publ) | System and method for creating reusable components in an object-oriented programming environment |
Non-Patent Citations (1)
Title |
---|
CARR H. ET AL.: 'Comppiling distributed C++' IEEE 1993, pages 496 - 503, XP002943626 * |
Also Published As
Publication number | Publication date |
---|---|
WO2001052082A3 (en) | 2002-03-07 |
AU2001227781A1 (en) | 2001-07-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6049807A (en) | Technique for maintaining object integrity during modification of a persistent store of objects | |
JP3595340B2 (en) | Recoverable proxy objects in an object-oriented environment | |
US5870742A (en) | Method and apparatus for enabling persistent attributes in an object oriented environment | |
US8020173B2 (en) | Method and system for associating parameters of containers and contained objects | |
JP3131223B2 (en) | Locator system for object-oriented systems | |
US7562347B2 (en) | Reusable software components | |
US5414854A (en) | Object-oriental system for managing shared libraries | |
JP2986051B2 (en) | Object oriented computer system and object execution method | |
US20010022592A1 (en) | Data processor controlled interface with multiple tree of elements views expandable into individual detail views | |
US6308314B1 (en) | Mechanism and method for flexible coupling of processes in an object oriented framework | |
US6526457B1 (en) | Systems utility object interface for facilitating software portability | |
US6330711B1 (en) | Method and apparatus for dynamic application and maintenance of programs | |
US20040027374A1 (en) | Event routing mechanism in a computer system | |
US7409692B2 (en) | Software component architecture | |
US6252591B1 (en) | Method for mapping a text-oriented user interface to a graphics user interface by means of a class library | |
US6405363B1 (en) | Class casting support for run-time extensible items in an object oriented framework | |
US5872914A (en) | Method and apparatus for an account managed object class model in a distributed computing environment | |
US6526565B1 (en) | Packaging algorithm for providing object oriented applications having reduced footprints | |
US7447993B2 (en) | System and method for displaying a user interface object using an associated style | |
US6195791B1 (en) | Object mechanism and method for coupling together processes to define a desired processing environment in an object oriented framework | |
US6918126B1 (en) | Method and apparatus for creating and enforcing protected system level Java code | |
JP2007012064A (en) | Allowing non-generified method to override generified method | |
US7185325B2 (en) | Application class extensions | |
CN111309334A (en) | Method and device for generating software installation package, computer equipment and storage medium | |
US6581203B1 (en) | Technique for visually creating and adding members to a class |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |
|
122 | Ep: pct application non-entry in european phase | ||
NENP | Non-entry into the national phase in: |
Ref country code: JP |