Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
mohawk-t-conversion-tool
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Service Desk
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Operations
Operations
Incidents
Environments
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Jon Shahen
mohawk-t-conversion-tool
Commits
eeb0aa3c
Commit
eeb0aa3c
authored
Feb 07, 2015
by
Jonathan Shahen
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Confirmed that Mohawk Reductions work!
parent
2c47cfd6
Changes
6
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
41 additions
and
19 deletions
+41
-19
src/mohawk/converter/ConverterCUI.java
src/mohawk/converter/ConverterCUI.java
+10
-0
src/mohawk/converter/ConverterInstance.java
src/mohawk/converter/ConverterInstance.java
+8
-8
src/mohawk/converter/OptionString.java
src/mohawk/converter/OptionString.java
+9
-0
src/mohawk/converter/to/asaptime/ConvertToASAPTimeSA.java
src/mohawk/converter/to/asaptime/ConvertToASAPTimeSA.java
+1
-1
src/mohawk/converter/to/mohawk/ConvertToMohawk.java
src/mohawk/converter/to/mohawk/ConvertToMohawk.java
+9
-6
src/mohawk/converter/to/mohawk/mohawkTemplate.st
src/mohawk/converter/to/mohawk/mohawkTemplate.st
+4
-4
No files found.
src/mohawk/converter/ConverterCUI.java
View file @
eeb0aa3c
...
...
@@ -4,10 +4,13 @@ import java.util.ArrayList;
import
java.util.Scanner
;
import
java.util.logging.Logger
;
import
mohawk.global.FileExtensions
;
import
org.apache.commons.cli.Options
;
public
class
ConverterCUI
{
public
static
final
Logger
logger
=
Logger
.
getLogger
(
"mohawk-converter"
);
public
static
FileExtensions
fileExt
=
new
FileExtensions
();
public
static
void
main
(
String
[]
args
)
{
ConverterInstance
inst
=
new
ConverterInstance
();
...
...
@@ -66,6 +69,13 @@ public class ConverterCUI {
+
OptionString
.
LOGLEVEL
.
c
()
+
"debug !exit"
);
System
.
out
.
println
(
OptionString
.
TO_ALL
.
c
()
+
OptionString
.
SPECFILE
.
c
()
+
"data/regressiontests/positive4.spec "
+
OptionString
.
LOGLEVEL
.
c
()
+
"debug !exit"
);
System
.
out
.
println
(
OptionString
.
TO_ALL
.
c
()
+
OptionString
.
SPECFILE
.
c
(
"data/Mohawk/positive/test01.mohawk.mohawk.T"
)
+
OptionString
.
LOGLEVEL
.
c
(
"debug"
)
+
"!exit"
);
System
.
out
.
println
(
""
);
System
.
out
.
println
(
OptionString
.
TO_ALL
.
c
()
+
OptionString
.
SPECFILE
.
c
(
"data/Mohawk/positive/"
)
+
OptionString
.
LOGLEVEL
.
c
(
"debug"
)
+
OptionString
.
BULK
.
c
()
+
OptionString
.
SPECEXT
.
c
(
fileExt
.
Mohawk_T
)
+
"!exit"
);
}
}
src/mohawk/converter/ConverterInstance.java
View file @
eeb0aa3c
...
...
@@ -33,7 +33,7 @@ import org.apache.commons.cli.Options;
import
org.apache.commons.lang3.StringUtils
;
public
class
ConverterInstance
{
private
static
final
String
VERSION
=
"v
0
.0.2"
;
private
static
final
String
VERSION
=
"v
1
.0.2"
;
private
static
final
String
AUTHORS
=
"Jonathan Shahen <jmshahen@uwaterloo.ca>"
;
// Logger Fields
public
static
final
Logger
logger
=
Logger
.
getLogger
(
"mohawk-converter"
);
...
...
@@ -117,7 +117,7 @@ public class ConverterInstance {
if
(
cmd
.
hasOption
(
OptionString
.
TO_ASAPTIME_NSA
.
toString
())
||
cmd
.
hasOption
(
OptionString
.
TO_ALL
.
toString
()))
{
logger
.
info
(
"[CONVERTING] Converting to ASAPTime NSA...
"
);
logger
.
info
(
"[CONVERTING] Converting to ASAPTime NSA...
"
+
specFile
.
getName
()
);
/* Timing */
timing
.
startTimer
(
"convertToASAPTimeNSA ("
+
i
+
")"
);
ConvertToASAPTimeNSA
toASAPTimeNSA
=
new
ConvertToASAPTimeNSA
();
...
...
@@ -136,7 +136,7 @@ public class ConverterInstance {
if
(
cmd
.
hasOption
(
OptionString
.
TO_ASAPTIME_SA
.
toString
())
||
cmd
.
hasOption
(
OptionString
.
TO_ALL
.
toString
()))
{
logger
.
info
(
"[CONVERTING] Converting to ASAPTime SA...
"
);
logger
.
info
(
"[CONVERTING] Converting to ASAPTime SA...
"
+
specFile
.
getName
()
);
/* Timing */
timing
.
startTimer
(
"convertToASAPTimeSA ("
+
i
+
")"
);
ConvertToASAPTimeSA
toASAPTimeSA
=
new
ConvertToASAPTimeSA
();
...
...
@@ -154,7 +154,7 @@ public class ConverterInstance {
}
if
(
cmd
.
hasOption
(
OptionString
.
TO_TROLE
.
toString
())
||
cmd
.
hasOption
(
OptionString
.
TO_ALL
.
toString
()))
{
logger
.
info
(
"[CONVERTING] Converting to TRole...
"
);
logger
.
info
(
"[CONVERTING] Converting to TRole...
"
+
specFile
.
getName
()
);
/* Timing */
timing
.
startTimer
(
"convertToTRole ("
+
i
+
")"
);
ConvertToTRole
toTRole
=
new
ConvertToTRole
();
...
...
@@ -172,7 +172,7 @@ public class ConverterInstance {
}
if
(
cmd
.
hasOption
(
OptionString
.
TO_TRULE
.
toString
())
||
cmd
.
hasOption
(
OptionString
.
TO_ALL
.
toString
()))
{
logger
.
info
(
"[CONVERTING] Converting to TRule...
"
);
logger
.
info
(
"[CONVERTING] Converting to TRule...
"
+
specFile
.
getName
()
);
/* Timing */
timing
.
startTimer
(
"convertToTRule ("
+
i
+
")"
);
ConvertToTRule
toTRule
=
new
ConvertToTRule
();
...
...
@@ -190,7 +190,7 @@ public class ConverterInstance {
}
if
(
cmd
.
hasOption
(
OptionString
.
TO_MOHAWK
.
toString
())
||
cmd
.
hasOption
(
OptionString
.
TO_ALL
.
toString
()))
{
logger
.
info
(
"[CONVERTING] Converting to Mohawk...
"
);
logger
.
info
(
"[CONVERTING] Converting to Mohawk...
"
+
specFile
.
getName
()
);
/* Timing */
timing
.
startTimer
(
"convertToMohawk ("
+
i
+
")"
);
ConvertToMohawk
toMohawk
=
new
ConvertToMohawk
();
...
...
@@ -208,7 +208,7 @@ public class ConverterInstance {
}
if
(
cmd
.
hasOption
(
OptionString
.
TO_MOHAWK_T
.
toString
()))
{
logger
.
info
(
"[CONVERTING] Converting to Mohawk-T...
"
);
logger
.
info
(
"[CONVERTING] Converting to Mohawk-T...
"
+
specFile
.
getName
()
);
/* Timing */
timing
.
startTimer
(
"convertToMohawkT ("
+
i
+
")"
);
FileWriter
fw
=
new
FileWriter
(
specFile
.
getAbsolutePath
()
+
"_2"
);
...
...
@@ -230,7 +230,7 @@ public class ConverterInstance {
logger
.
severe
(
e
.
getMessage
());
}
logger
.
info
(
"Converter Instance done running"
);
logger
.
info
(
"
[EOF]
Converter Instance done running"
);
return
0
;
}
...
...
src/mohawk/converter/OptionString.java
View file @
eeb0aa3c
...
...
@@ -26,4 +26,13 @@ public enum OptionString {
public
String
c
()
{
return
"-"
+
_str
+
" "
;
}
/**
* Returns the commandline equivalent with the hyphen and a space following: LOGLEVEL("debug") -> "-loglevel debug "
* @param param
* @return
*/
public
String
c
(
String
param
)
{
return
"-"
+
_str
+
" "
+
param
+
" "
;
}
}
src/mohawk/converter/to/asaptime/ConvertToASAPTimeSA.java
View file @
eeb0aa3c
...
...
@@ -160,7 +160,7 @@ public class ConvertToASAPTimeSA extends ConvertTo {
}
// Convert Preconditions to the Role Indexes
System
.
out
.
println
(
"[toASAPTimeSA_Rules] Rule: "
+
rule
);
//
System.out.println("[toASAPTimeSA_Rules] Rule: " + rule);
for
(
Role
r
:
rule
.
_preconditions
)
{
precondition
.
add
(
roleHelper
.
indexOf
(
r
));
}
...
...
src/mohawk/converter/to/mohawk/ConvertToMohawk.java
View file @
eeb0aa3c
...
...
@@ -39,6 +39,10 @@ public class ConvertToMohawk extends ConvertTo {
Query
workableQuery
=
new
Query
(
m
.
query
);
workableRules
=
roleHelper
.
removeEnableDisableRules
(
m
.
getAllRules
());
// (3)
// Convert Query to Reduced ASAPTime SA Query and add any extra rules as needed
Mohawk_Query
query
=
toMohawk_Query
(
workableQuery
,
workableRules
,
roleHelper
,
timeIntervalHelper
);
workableRules
=
roleHelper
.
alwaysOnRules
(
workableRules
,
workableQuery
,
timeIntervalHelper
);
// (4)
workableRules
=
roleHelper
.
removeUninvokablePrecondtions
(
workableRules
,
false
);
// (6)
workableRules
=
roleHelper
.
removePrecondtionsCanRevoke
(
workableRules
,
false
);
// (6)
...
...
@@ -57,15 +61,14 @@ public class ConvertToMohawk extends ConvertTo {
}
}
// Convert Query to Reduced ASAPTime SA Query and add any extra rules as needed
Mohawk_Query
query
=
toMohawk_Query
(
workableQuery
,
newCARules
,
roleHelper
,
timeIntervalHelper
);
boolean
queryFound
=
query
.
finalize
(
roleHelperTemporality
);
assert
(
queryFound
==
true
)
:
"The query could not find the Goal Role!"
;
// Stats and logging
numberOfRules
=
newCARules
.
size
()
+
newCRRules
.
size
();
String
template
=
ConvertTo
.
readFile
(
this
.
getClass
().
getResource
(
"mohawkTemplate.st"
));
ST
st
=
new
ST
(
template
);
st
.
add
(
"roles"
,
roleHelperTemporality
.
_roles
);
st
.
add
(
"roles"
,
roleHelperTemporality
.
_roles
.
toArray
(
new
Role
[
0
])
);
st
.
add
(
"users"
,
new
String
[]
{
"AdminUser"
,
"User"
});
st
.
add
(
"specuser"
,
"User"
);
st
.
add
(
"specrole"
,
query
.
specRole
);
...
...
@@ -96,7 +99,7 @@ public class ConvertToMohawk extends ConvertTo {
return
convertedStr
;
}
private
Mohawk_Query
toMohawk_Query
(
Query
query
,
ArrayList
<
MohawkCA_
Rule
>
newCARules
,
RoleHelper
roleHelper
,
private
Mohawk_Query
toMohawk_Query
(
Query
query
,
ArrayList
<
Rule
>
newCARules
,
RoleHelper
roleHelper
,
TimeIntervalHelper
timeIntervalHelper
)
{
// Checking Conditions
assert
(
query
.
_roles
.
size
()
>
0
)
:
"The query must have atleast one Goal Role"
;
...
...
@@ -111,7 +114,7 @@ public class ConvertToMohawk extends ConvertTo {
newRule
.
_roleSchedule
=
new
ArrayList
<
TimeSlot
>(
Arrays
.
asList
(
query
.
_timeslot
));
newRule
.
_role
=
newGoalRole
;
newCARules
.
add
(
new
MohawkCA_Rule
(
newRule
)
);
newCARules
.
add
(
new
Rule
);
return
q
;
}
...
...
src/mohawk/converter/to/mohawk/mohawkTemplate.st
View file @
eeb0aa3c
<
!
Roles
role0
role1
role2
role3
;
!>
Roles
<
roles:
{
r
|
r
.
_
name
};
separator=
" "
>;
Roles
<
roles:
{
r
|
<
r
.
_
name
>
};
separator=
" "
>
<
adminrole
>
;
<
!
Users
user0
user1
user2
user3
user4
;
!>
Users
<
users
;
separator=
" "
>;
<
!
UA
<
user4
,
Admin
>
;
!
>
UA
\<<
adminuser
>,<
adminrole
>
\
>
;
UA
\<<
adminuser
>,<
adminrole
>>
;
<
!
CR
<
Admin
,
role0
>
<
Admin
,
role2
>
;
!
>
CR
<
canrevoke:
{
cr
|\<<
adminrole
>,<
cr
.
role
>
\
>
};
separator=
" "
>;
CR
<
canrevoke:
{
cr
|\<<
adminrole
>,<
cr
.
role
>>
};
separator=
" "
>;
<
!
CA
<
role3
,
role2
,
role0
>
<
role3
,
role2
&
role1
,
role0
>
<
role3
,
role2
&
role0
,
role1
>
<
role3
,
TRUE
,
role1
>
<
role3
,
role0
,
role1
>
;
!
>
CA
<
canassign:
{
ca
|\<<
adminrole
>,<
if
(
ca
.
precondition
)
><
ca
.
precondition
;
separator=
"&"
><
else
>
TRUE
<
endif
>,<
ca
.
role
>
\
>
};
separator=
" "
>;
CA
<
canassign:
{
ca
|\<<
adminrole
>,<
if
(
ca
.
precondition
)
><
ca
.
precondition
;
separator=
"&"
><
else
>
TRUE
<
endif
>,<
ca
.
role
>>
};
separator=
" "
>;
<
!
ADMIN
user4
;
!>
ADMIN
<
adminuser
>
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment